Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
Adatbázis-hatókörű hitelesítő adatokat hoz létre egy felhasználói adatbázisban, megadva az adatbázis rendszergazdai
masterhitelesítő adatait.Létrehoz egy külső adatforrást, amely az
masteradatbázisra mutat, és megadja az adatbázis hatókörébe tartozó hitelesítő adatokat.Végrehajtja az
sp_set_firewall_ruleeljárást azmasteradatbázisban. Azsp_set_firewall_ruleeljáráshoz három paraméterre van szükség, és a@nameparamé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';