Aracılığıyla paylaş


sp_execute_remote (Azure SQL Veritabanı)

Şunlar için geçerlidir:Azure SQL Veritabanı

Tek bir uzak Azure SQL Veritabanı veya yatay bölümleme düzeninde parça olarak hizmet veren veritabanları kümesinde bir Transact-SQL (T-SQL) deyimi yürütür.

Saklı yordam, elastik sorgu özelliğinin bir parçasıdır. Bkz. Azure SQL Veritabanı elastik sorguya genel bakış (önizleme) ve Ölçeği genişletilmiş bulut veritabanlarında raporlama (önizleme).

Transact-SQL söz dizimi kuralları

Sözdizimi

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

deyiminin yürütüldüğü dış veri kaynağını tanımlar. Bkz. DıŞ VERI KAYNAĞı OLUŞTURMA. Dış veri kaynağı veya SHARD_MAP_MANAGERtüründe RDBMS olabilir.

[ @stmt = ] stmt

Transact-SQL deyimi veya toplu işlemi içeren bir Unicode dizesi. @stmt bir Unicode sabiti veya Unicode değişkeni olmalıdır. İki dizeyi + işleciyle birleştirmek gibi daha karmaşık Unicode ifadelerine izin verilmez. Karakter sabitlerine izin verilmez. Bir Unicode sabiti belirtilirse, bu sabite bir Nön ek ek eklenmelidir. Örneğin, Unicode sabiti N'sp_who' geçerlidir, ancak karakter sabiti 'sp_who' geçerli değildir.

Dizenin boyutu yalnızca kullanılabilir veritabanı sunucusu belleğiyle sınırlıdır. 64 bit sunucularda, dizenin boyutu 2 GB ile sınırlıdır; en büyük boyut nvarchar(max).

Uyarı

@stmt , değişken adıyla aynı forma sahip parametreler içerebilir, örneğin: N'SELECT * FROM HumanResources.Employee WHERE EmployeeID = @IDParameter'.

@stmt dahil edilen her parametrenin hem @params parametre tanımı listesinde hem de parametre değerleri listesinde karşılık gelen bir girdisi olmalıdır.

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

@stmt eklenmiş tüm parametrelerin tanımlarını içeren bir dize. Dize bir Unicode sabiti veya Unicode değişkeni olmalıdır. Her parametre tanımı bir parametre adından ve bir veri türünden oluşur. n, daha fazla parametre tanımını gösteren bir yer tutucudur. @stmt'de belirtilen her parametre @paramsiçinde tanımlanmalıdır. içindeki @stmt Transact-SQL deyimi veya toplu işlemi parametre içermiyorsa @params gerekli değildir. Bu parametre için varsayılan değerdir NULL.

[ @param1 = ] 'değer1'

Parametre dizesinde tanımlanan ilk parametre için bir değer. Değer bir Unicode sabiti veya Unicode değişkeni olabilir. @stmtdahil edilen her parametre için bir parametre değeri sağlanmalıdır. @stmt'daki Transact-SQL deyiminde veya toplu işte parametre olmadığında değerler gerekli değildir.

n

Ek parametrelerin değerleri için yer tutucu. Değerler yalnızca sabitler veya değişkenler olabilir. Değerler, işlevler gibi daha karmaşık ifadeler veya işleçler kullanılarak oluşturulan ifadeler olamaz.

Dönüş kodu değerleri

0 (başarı) veya sıfır olmayan (başarısızlık).

Sonuç kümesi

İlk T-SQL deyiminden sonuç kümesini döndürür.

Permissions

İzin gerektirir ALTER ANY EXTERNAL DATA SOURCE .

Açıklamalar

sp_execute_remote parametreleri Söz dizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.

sp_execute_remote toplu işlerle ve adların kapsamıyla ilgili EXECUTE ile aynı davranışa sahiptir. @stmt parametresindeki T-SQL deyimi veya toplu işlemi, deyimi yürütülene sp_execute_remote kadar derlenmemiştir.

sp_execute_remote adlı sonuç kümesine $ShardName , satırı oluşturan uzak veritabanının adını içeren fazladan bir sütun ekler.

sp_execute_remote sp_executesql benzer bir şekilde kullanılabilir.

Örnekler

A. Temel örnek

Aşağıdaki örnek, uzak veritabanında temel SELECT bir deyim oluşturur ve yürütür.

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

B. Birden çok parametre içeren örnek

Bu örnek aşağıdaki eylemleri gerçekleştirir:

  1. Bir kullanıcı veritabanında veritabanı için master yönetici kimlik bilgilerini belirterek kapsamlı bir kimlik bilgisi oluşturur.

  2. Veritabanına işaret eden master ve veritabanı kapsamlı kimlik bilgilerini belirten bir dış veri kaynağı oluşturur.

  3. sp_set_firewall_rule Yordamı veritabanında yürütürmaster. Yordam sp_set_firewall_rule üç parametre gerektirir ve parametresinin @name Unicode olmasını gerektirir.

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';