sp_execute_remote (Azure SQL Database távoli végrehajtás)

A következőkre vonatkozik:Azure SQL Database

Végrehajt egy Transact-SQL (T-SQL) utasítást egyetlen távoli Azure SQL Database-adatbázison vagy horizontális particionálási sémában szegmensként szolgáló adatbázisok készletén.

A tárolt eljárás a rugalmas lekérdezési funkció része. Tekintse meg az Azure SQL Database rugalmas lekérdezéseinek áttekintését (előzetes verzió) és a jelentéskészítést a kibővített felhőalapú adatbázisokban (előzetes verzió).

Transact-SQL szintaxis konvenciók

Szemantika

sp_execute_remote
    [ @data_source_name = ] data_source_name
    , [ @stmt = ] stmt
    [
        { , [ @params = ] N'@parameter_name data_type [ , ...n ]' }
        { , [ @param1 = ] 'value1' [ , ...n ] }
    ]
[ ; ]

Arguments

[ @data_source_name = ] data_source_name

Azonosítja azt a külső adatforrást, ahol az utasítás végrehajtása történik. Lásd: CREATE EXTERNAL DATA SOURCE. A külső adatforrás lehet típus RDBMS vagy SHARD_MAP_MANAGER.

[ @stmt = ] STMT

Unicode-sztring, amely Transact-SQL utasítást vagy köteget tartalmaz. @stmt Unicode-állandónak vagy Unicode-változónak kell lennie. Az összetettebb Unicode-kifejezések, például két sztring összefűzése az + operátorral nem engedélyezettek. A karakterállandók nem engedélyezettek. Ha Unicode-állandó van megadva, az előtagot egy N. A Unicode-állandó N'sp_who' például érvényes, de a 'sp_who' karakterállandó nem.

A sztring méretét csak a rendelkezésre álló adatbázis-kiszolgálói memória korlátozza. 64 bites kiszolgálókon a sztring mérete legfeljebb 2 GB, a maximális mérete nvarchar(max).

Megjegyzés:

@stmt tartalmazhat olyan paramétereket, amelyek formátuma megegyezik a változó nevével, például: N'SELECT * FROM HumanResources.Employee WHERE EmployeeID = @IDParameter'.

A @stmt minden paraméterének rendelkeznie kell egy megfelelő bejegyzéssel mind a @params paraméterdefiníciós listában, mind a paraméterértékek listájában.

[ @params = ] N'@parameter_namedata_type [ ,... n ]'

Egy sztring, amely a @stmt beágyazott összes paraméter definícióját tartalmazza. A sztringnek Unicode-állandónak vagy Unicode-változónak kell lennie. Minden paraméterdefiníció egy paraméternévből és egy adattípusból áll. n egy helyőrző, amely több paraméterdefiníciót jelez. A @stmt megadott paramétereket @paramskell definiálni. Ha a Transact-SQL utasítás vagy köteg @stmt nem tartalmaz paramétereket, @params nem szükséges. A paraméter alapértelmezett értéke NULL.

[ @param1 = ] 'érték1'

A paramétersztringben definiált első paraméter értéke. Az érték lehet Unicode-állandó vagy Unicode-változó. A @stmtminden paraméteréhez meg kell adni egy paraméterértéket. Az értékekre nincs szükség, ha a @stmt Transact-SQL utasításának vagy kötegének nincsenek paraméterei.

n

A további paraméterek értékeinek helyőrzője. Az értékek csak állandók vagy változók lehetnek. Az értékek nem lehetnek összetettebb kifejezések, például függvények vagy operátorok által létrehozott kifejezések.

Kódértékek visszaadása

0 (sikeres) vagy nem nulla (hiba).

Eredményhalmaz

Az első T-SQL-utasítás eredményhalmazát adja vissza.

Permissions

Engedélyre van szükség ALTER ANY EXTERNAL DATA SOURCE .

Megjegyzések

sp_execute_remote a paramétereket a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.

sp_execute_remote ugyanazzal a viselkedéssel rendelkezik, mint az EXECUTE a kötegekre és a nevek hatókörére vonatkozóan. A @stmt paraméter T-SQL utasítása vagy kötege csak az sp_execute_remote utasítás végrehajtásáig lesz lefordítva.

sp_execute_remote Hozzáad egy további oszlopot az eredményhalmazhoz $ShardName , amely a sort előállító távoli adatbázis nevét tartalmazza.

sp_execute_remotesp_executesql.

Példák

A. Egyszerű példa

Az alábbi példa létrehoz és végrehajt egy alapszintű SELECT utasítást egy távoli adatbázisban.

EXECUTE sp_execute_remote N'MyExtSrc', N'SELECT COUNT(w_id) AS Count_id FROM warehouse';

B. Példa több paraméterrel

Ez a példa a következő műveleteket hajtja végre:

  1. Adatbázis-hatókörű hitelesítő adatokat hoz létre egy felhasználói adatbázisban, megadva az adatbázis rendszergazdai master hitelesítő adatait.

  2. Létrehoz egy külső adatforrást, amely az master adatbázisra mutat, és megadja az adatbázis hatókörébe tartozó hitelesítő adatokat.

  3. Végrehajtja az sp_set_firewall_rule eljárást az master adatbázisban. Az sp_set_firewall_rule eljáráshoz három paraméterre van szükség, és a @name paraméternek Unicode-nak kell lennie.

EXECUTE sp_execute_remote
    @data_source_name = N'PointToMaster',
    @stmt = N'sp_set_firewall_rule @name, @start_ip_address, @end_ip_address',
    @params = N'@name nvarchar(128), @start_ip_address varchar(50), @end_ip_address varchar(50)',
    @name = N'TempFWRule',
    @start_ip_address = '0.0.0.2',
    @end_ip_address = '0.0.0.2';