Aracılığıyla paylaş


SORGUAÇ (Transact-SQL)

Belirtilen bağlantılı sunucuüzerinde belirtilen doğrudan sorgu yürütür.Bu sunucu bir ole DB veri kaynakdeğil.Bir tablo adı üzerindeymiş SORGUAÇ from yan tümce sorgunun içinde başvurulabilir.SORGUAÇ hedef tablo INSERT, update olarak da başvurulabilir veya delete deyim.ole DB sağlayıcıyeteneklerini konu budur.Sorgu birden fazla sonuç kümeleri döndürebilir, ancak yalnızca birincisi SORGUAÇ döndürür.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

OPENQUERY ( linked_server ,'query' )

Bağımsız değişkenler

  • linked_server
    Bir tanımlayıcı, bağlantılı sunucuadını temsil eden.

  • 'query'
    Sorgu dize bağlantılı sunucuyürütülür.dize uzunluğu en fazla 8 KB'tır.

Açıklamalar

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

SORGUAÇ genişletilmiş saklı yordamları bağlantılı sunucuüzerinde yürütmek için kullanılamaz.Ancak, bir genişletilmiş saklı yordam bağlantılı sunucu üzerinde dört bir ad kullanılarak çalıştırılabilir.Örneğin:

EXEC SeattleSales.master.dbo.xp_msver

İzinler

Herhangi bir kullanıcı için SORGUAÇ yürütmek .Uzaktan erişim sunucusuna bağlanmak için kullanılan izinleri bağlantılı sunucuiçin tanımlanan ayarlarından alınır.

Örnekler

A.SEÇME doğrudan sorguyürütme

Aşağıdaki örnek, adlı bir bağlantılı sunucu oluşturur OracleSvr kullanarak bir Oracle veritabanı Microsoft ole DB Provider for Oracle.Daha sonra bu örnek bir geçiş kullanır SELECT Bu bağlantılı sunucusorgusu.

Not

Bir Oracle veritabanı diğer ad adı verilen bu örnek varsayar ORCLDB yaratıldı.

EXEC sp_addlinkedserver 'OracleSvr', 
   'Oracle 7.3', 
   'MSDAORA', 
   'ORCLDB'
GO
SELECT *
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles') 
GO

B.Güncelleştirme doğrudan sorguyürütme

Aşağıdaki örnekte bir doğrudan kullanan UPDATE bağlantılı sunucu örnek a. oluşturulan sorgu

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

C.INSERT doğrudan sorguyürütme

Aşağıdaki örnekte bir doğrudan kullanan INSERT bağlantılı sunucu örnek a. oluşturulan sorgu

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

D.SİLME doğrudan sorguyürütme

Aşağıdaki örnekte bir doğrudan kullanan DELETE c. örnekte eklenen satır silme sorgusu

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