openquery (Transact-sql)

Belirtilen bağlantılı sunucusuna belirtilen doğrudan sorgu yürütür. Bu sunucu bir ole db veri kaynağıdır. Tablo adı sanki openquery bir sorgunun from yan tümcesinde başvurulabilir. openquery INSERT, update, hedef tablo olarak da başvurulabilir veya delete deyimi. ole db sağlayıcı yeteneklerini konu budur. Sorgu birden fazla sonuç kümeleri döndürebilir, ancak openquery yalnızca ilk yanıtı döndürür.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

OPENQUERY ( linked_server ,'query' )

Bağımsız değişkenler

  • linked_server
    Bağlantılı sunucu adı tanımlayıcı temsil etmektedir.

  • 'query'
    Sorgu dizesi bağlantılı sunucu yürütülür. Dizenin en fazla uzunluğu 8 KB'tır.

Açıklamalar

openquery bağımsız değişkenleri kabul etmez.

openquery bağlantılı bir sunucu üzerinde genişletilmiş saklı yordamları yürütmek için kullanılamaz. Ancak, genişletilmiş saklı yordam bir bağlantılı sunucu üzerinde four-part adı kullanılarak çalıştırılabilir. Örneğin:

EXEC SeattleSales.master.dbo.xp_msver

EXEC SeattleSales.master.dbo.xp_msver

FROM yan tümcesinde OPENDATASOURCE, OPENQUERY veya OPENROWSET deyimine yapılan tüm çağrılar, ayrı ayrı ve her iki çağrıya da aynı değişkenler sağlansa da güncelleştirmenin hedefi olarak bu işlevlere yapılan tüm çağrılardan bağımsız olarak değerlendirilir. Özellikle, bu çağrılardan birinin sonuçlarına uygulanan filtreleme veya birleştirme koşullarının diğeri üzerinde hiçbir etkisi yoktur.

İzinler

Herhangi bir kullanıcı, openquery yürütebilirsiniz. Uzak sunucuya bağlanmak için kullanılan izinleri bağlantılı sunucu için tanımlanan ayarları elde edilir.

Örnekler

A.GÜNCELLEŞTİRME doğrudan sorgusu yürütme

Aşağıdaki örnekte bir doğrudan kullanan UPDATEa oluşturulan bağlantılı sunucu sorgusu

UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101') 
SET name = 'ADifferentName';

UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101') 
SET name = 'ADifferentName';

B.INSERT doğrudan sorgusu yürütme

Aşağıdaki örnekte bir doğrudan kullanan INSERTa oluşturulan bağlantılı sunucu sorgusu

INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');

INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');

C.SİLME doğrudan sorgusu yürütme

Aşağıdaki örnekte bir doğrudan kullanan DELETEc. örnekte eklenen satır silmek için sorgu

DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');

DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');

Ayrıca bkz.

Başvuru

Sil (Transact-sql)

FROM (Transact-sql)

Insert (Transact-sql)

opendatasource (Transact-sql)

OPENROWSET (Transact-SQL)

Satır kümesi işlevler (Transact-sql)

select (Transact-sql)

sp_addlinkedserver (Transact-sql)

sp_serveroption (Transact-sql)

Güncelleştirme (Transact-sql)

NEREDE (Transact-sql)