Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Applies to:SQL Server
Azure SQL Managed Instance
Belirtilen doğrudan sorguyu belirtilen bağlı sunucuda yürütür. Bu sunucu bir OLE DB veri kaynağıdır. OPENQUERY'ye bir sorgunun FROM yan tümcesinde tablo adıymış gibi başvurulabilir. OPENQUERY,INSERT, UPDATE veya DELETE deyiminin hedef tablosu olarak da başvurulabilir. Bu, OLE DB sağlayıcısının özelliklerine tabidir. Sorgu birden çok sonuç kümesi döndürse de, OPENQUERY yalnızca ilkini döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
OPENQUERY ( linked_server ,'query' )
Argümanlar
linked_server
Bağlı sunucunun adını temsil eden bir tanımlayıcıdır.
'query'
Sorgu dizesi bağlı sunucuda yürütülür. Dizenin uzunluğu üst sınırı 8 KB'tır.
Açıklamalar
OPENQUERY bağımsız değişkenleri kabul etmez.
OPENQUERY, bağlı bir sunucuda genişletilmiş saklı yordamları yürütmek için kullanılamaz. Ancak, genişletilmiş bir saklı yordam, dört parçalı bir ad kullanılarak bağlı bir sunucuda yürütülebilir. Örneğin:
EXEC SeattleSales.master.dbo.xp_msver
FROM yan tümcesindeki OPENDATASOURCE, OPENQUERY veya OPENROWSET çağrıları, iki çağrıya aynı bağımsız değişkenler sağlansa bile güncelleştirmenin hedefi olarak kullanılan bu işlevlere yapılan tüm çağrılardan ayrı ve bağımsız olarak değerlendirilir. Özellikle, bu çağrılardan birinin sonucuna uygulanan filtre veya birleştirme koşullarının diğerinin sonuçları üzerinde hiçbir etkisi yoktur.
İzinler
Herhangi bir kullanıcı OPENQUERY yürütebilir. Uzak sunucuya bağlanmak için kullanılan izinler, bağlı sunucu için tanımlanan ayarlardan alınır.
Örnekler
A. UPDATE doğrudan sorgusunu yürütme
Aşağıdaki örnekte adlı OracleSvrbağlı sunucuya yönelik bir geçiş UPDATE sorgusu kullanılır.
UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101')
SET name = 'ADifferentName';
B. INSERT doğrudan sorgusunu yürütme
Aşağıdaki örnekte adlı OracleSvrbağlı sunucuya yönelik bir geçiş INSERT sorgusu kullanılır.
INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');
C. DELETE doğrudan sorgusunu yürütme
Aşağıdaki örnekte, B örneğine eklenen satırı silmek için bir geçiş DELETE sorgusu kullanılır.
DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
D. SELECT geçiş sorgusu yürütme
Aşağıdaki örnekte, B örneğine eklenen satırı seçmek için bir geçiş SELECT sorgusu kullanılır.
SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
Ayrıca Bkz.
DELETE (Transact-SQL)
FROM (Transact-SQL)
INSERT (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
OPENROWSET (Transact-SQL)
SELECT (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_serveroption (Transact-SQL)
UPDATE (Transact-SQL)
WHERE (Transact-SQL)