Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Azure SQL Database
Menjalankan pernyataan Transact-SQL (T-SQL) pada satu Azure SQL Database jarak jauh atau sekumpulan database yang berfungsi sebagai pecahan dalam skema pemartisian horizontal.
Prosedur tersimpan adalah bagian dari fitur kueri elastis. Lihat Gambaran umum kueri elastis Azure SQL Database (pratinjau) dan Pelaporan di seluruh database cloud yang diskalakan (pratinjau).
Sintaks
sp_execute_remote
[ @data_source_name = ] data_source_name
, [ @stmt = ] stmt
[
{ , [ @params = ] N'@parameter_name data_type [ , ...n ]' }
{ , [ @param1 = ] 'value1' [ , ...n ] }
]
[ ; ]
Argumen
[ @data_source_name = ] data_source_name
Mengidentifikasi sumber data eksternal tempat pernyataan dijalankan. Lihat MEMBUAT SUMBER DATA EKSTERNAL. Sumber data eksternal dapat berjenis RDBMS atau SHARD_MAP_MANAGER.
[ @stmt = ] stmt
String Unicode yang berisi pernyataan atau batch Transact-SQL. @stmt harus berupa konstanta Unicode atau variabel Unicode. Ekspresi Unicode yang lebih kompleks, seperti menggabungkan dua string dengan + operator, tidak diizinkan. Konstanta karakter tidak diperbolehkan. Jika konstanta Unicode ditentukan, konstanta tersebut harus diawali dengan N. Misalnya, konstanta N'sp_who' Unicode valid, tetapi konstanta 'sp_who' karakter tidak.
Ukuran string hanya dibatasi oleh memori server database yang tersedia. Pada server 64-bit, ukuran string dibatasi hingga 2 GB, ukuran maksimum nvarchar(maks).
Catatan
@stmt dapat berisi parameter yang memiliki formulir yang sama dengan nama variabel, misalnya: N'SELECT * FROM HumanResources.Employee WHERE EmployeeID = @IDParameter'.
Setiap parameter yang disertakan dalam @stmt harus memiliki entri yang sesuai dalam daftar definisi parameter @params dan daftar nilai parameter.
[ @params = ] N'@parameter_name data_type [ ,... n ]'
Satu string yang berisi definisi semua parameter yang telah disematkan dalam @stmt. String harus berupa konstanta Unicode atau variabel Unicode. Setiap definisi parameter terdiri dari nama parameter dan jenis data. n adalah tempat penampung yang menunjukkan lebih banyak definisi parameter. Setiap parameter yang ditentukan dalam @stmt harus ditentukan dalam @params. Jika pernyataan Transact-SQL atau batch in @stmt tidak berisi parameter, @params tidak diperlukan. Nilai default untuk parameter ini adalah NULL.
[ @param1 = ] 'value1'
Nilai untuk parameter pertama yang ditentukan dalam string parameter. Nilainya bisa berupa konstanta Unicode atau variabel Unicode. Harus ada nilai parameter yang disediakan untuk setiap parameter yang disertakan dalam @stmt. Nilai tidak diperlukan saat pernyataan Transact-SQL atau batch dalam @stmt tidak memiliki parameter.
n
Tempat penampung untuk nilai parameter tambahan. Nilai hanya dapat berupa konstanta atau variabel. Nilai tidak boleh berupa ekspresi yang lebih kompleks seperti fungsi, atau ekspresi yang dibangun dengan menggunakan operator.
Mengembalikan nilai kode
0 (berhasil) atau bukan nol (kegagalan).
Tataan hasil
Mengembalikan tataan hasil dari pernyataan T-SQL pertama.
Izin
Memerlukan ALTER ANY EXTERNAL DATA SOURCE izin.
Keterangan
sp_execute_remote parameter harus dimasukkan dalam urutan tertentu seperti yang dijelaskan di bagian Sintaks . Jika parameter dimasukkan di luar urutan, pesan kesalahan terjadi.
sp_execute_remote memiliki perilaku yang sama dengan EXECUTE mengenai batch dan cakupan nama. Pernyataan T-SQL atau batch dalam parameter @stmt tidak dikompilasi hingga sp_execute_remote pernyataan dijalankan.
sp_execute_remote menambahkan kolom tambahan ke kumpulan hasil bernama $ShardName yang berisi nama database jarak jauh yang menghasilkan baris.
sp_execute_remote dapat digunakan dengan cara yang sama dengan sp_executesql.
Contoh
J. Contoh dasar
Contoh berikut membuat dan menjalankan pernyataan dasar SELECT pada database jarak jauh.
EXECUTE sp_execute_remote N'MyExtSrc', N'SELECT COUNT(w_id) AS Count_id FROM warehouse';
B. Contoh dengan beberapa parameter
Contoh ini melakukan tindakan berikut:
Membuat kredensial lingkup database dalam database pengguna, menentukan kredensial administrator untuk
masterdatabase.Membuat sumber data eksternal yang menunjuk ke
masterdatabase dan menentukan kredensial cakupan database.sp_set_firewall_ruleMenjalankan prosedur dalammasterdatabase. Prosedur inisp_set_firewall_rulememerlukan tiga parameter, dan mengharuskan@nameparameter menjadi Unicode.
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';