MSSQL Server’da OPENROWSET Kullanımı

Bu makalede MSSQL Server’da OPENROWSET Kullanımı detaylı bir şekilde görmüş olacağız. Openrowset ile veriye tek seferlik erişim sağlayabiliriz. Karşı sunucudaki veriye sık sık erişmemiz gerekiyorsa linked server kullanılması tercih edilir. Tek seferlik kullanım diyoruz ama kullanıcı birden fazla kullanabilir sonuçta komutu çalıştırıyor. Ama şu var bu openrowset komutunun çalıştırılması için Ad Hoc Distributed Queries system store procedure aktif edilmesi gerekmektedir.

Aşağıdaki komut ile veriye tek seferlik erişim sağladığında aşağıdaki hatayı alırız. Instance üzerinde Ad Hoc Distributed Queries kapalı ise aşağıdaki gibi hata alırsınız.

SELECT Employees.* FROM OPENROWSET(
'SQLNCLI',
'Server=S1\TEST;Trusted_Connection=yes',
'SELECT * FROM AdventureWorks2012.Person.Address'
) AS Employees

Msg 15281, Level 16, State 1, Line 1

SQL Server blocked access to STATEMENT ‘OpenRowset/OpenDatasource’ of component ‘Ad Hoc Distributed Queries’ because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of ‘Ad Hoc Distributed Queries’ by using sp_configure. For more information about enabling ‘Ad Hoc Distributed Queries’, search for ‘Ad Hoc Distributed Queries’ in SQL Server Books Online.

Trusted_Connection=yes: Windows kimlik doğrulaması yapılmaktadır. Server=localhost ta yazılabilir.

Aşağıdaki kod bloğuyla ilgili değerin 0 olduğu görülmektedir.

sp_configure 'show advanced options',1
reconfigure
sp_configure

Ad Hoc Distributed Queries aşağıdaki komut yardımıyla aktif edilir.

Tekrarda openrowset sorgumuzu çalıştırdığımızda sonucumuzun geldiğini görmekteyiz.

linked server’da nasıl join işlemi, update, insert ve delete işlemi yapıyorsak openrowset’tede yapabiliriz. Ayrıca Bulk işlemi ile veritabanımıza toplu yükleme yapabiliriz.

Başka bir makalede görüşmek dileğiyle..

“Ey Rabbim! Beni ve soyumdan gelecekleri namazını dosdoğru kılanlardan eyle! Ey Rabbimiz! duamı kabul et!”İbrahim-40

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir