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.
Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği
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 ayrıca bir INSERT, UPDATE, veya DELETE ifadenin hedef tablosu olarak da referans verilebilir. 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. Geçiş UPDATE sorgusu yürütme
Aşağıdaki örnekte adlı UPDATEbağlı sunucuya yönelik bir geçiş OracleSvr sorgusu kullanılır.
UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101')
SET name = 'ADifferentName';
B. Geçiş INSERT sorgusu yürütme
Aşağıdaki örnekte adlı INSERTbağlı sunucuya yönelik bir geçiş OracleSvr sorgusu kullanılır.
INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');
C. Geçiş DELETE sorgusu yürütmek
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)
SEÇ (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_serveroption (Transact-SQL)
UPDATE (Transact-SQL)
BURADA (Transact-SQL)