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.
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''');
Ayrıca bkz.