OpenQuery 是SQL Server用來與其他Server交互的一種技術,通過OpenQuery,SQL Server 可以直接訪問其他數據庫資源。
而其他數據庫在OpenQuery 表達式中是以Linked Server 存在的。 使用sp_linkedservers 可以找到當前數據庫的所有linked server.
例如在sql server 2008數據庫中通過鏈接服務器想訪問sql server 2000 的數據庫就必須使用OpenQuery了。
OpenQuery的表達式可以這么寫:
Select * from OpenQuery([linkedServerName],'Select * from t1 where id < 10')
而且值得注意的是,如果,你要在OpenQuery中執行如下的數據庫語句,
Select * from t1 Where Name = 'ida'
'ida' 必須以雙引號的形式傳人,如下,
Select * from OpenQuery([linkedServerName],'Select * from t1 where name= ''ida''')
如果是要寫入數據到另外的數據庫呢?格式如下:
insert into openquery([linkedServerName], 'select id,name,....
from [dbname].dbo.tbname where 1=0') select id,name,...
from t2
where ...