SELECT * FROM OPENDATASOURCE('SQLOLEDB','DataSource=192.168.1.201;Initial Catalog=DBName;user id=sa;passWord=sa').DBName.dbo.TableName
上面的語句執(zhí)行會出現(xiàn)以下錯(cuò)誤:
Msg 18456, Level 14, State 1, Line 1 用戶 'sa' 登錄失敗。 Msg 4060, Level 11, State 1, Line 1 無法打開登錄所請求的數(shù)據(jù)庫 "bbage_GameInisde"。登錄失敗。
因?yàn)镺PENDATASOURCE后面已經(jīng)跟了數(shù)據(jù)庫的名字(DBName),所以連接字符串中不能指定Initial Catalog。
正確的語句如下:
SELECT * FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=192.168.1.201;User ID=sa;Password=sa' ).DBName.dbo.TableName
注意:上面灰色的字均為個(gè)人需要配置的東西。
執(zhí)行該語句,可能會遇到以下問題:
SQL Server 阻止了對組件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的訪問,因?yàn)榇私M件已作為此服務(wù)器安全配置的一部分而被關(guān)閉。系統(tǒng)管理員可以通過使用 sp_configure 啟用 'Ad Hoc Distributed Queries'。有關(guān)啟用 'Ad Hoc Distributed Queries' 的詳細(xì)信息,請參閱 SQL Server 聯(lián)機(jī)叢書中的 "外圍應(yīng)用配置器"。
只要執(zhí)行下列語句:
EXEC sp_configure ''Ad Hoc Distributed Queries'' 1
RECONFIGURE
如果你沒有設(shè)置過服務(wù)器配置,可能會出現(xiàn)以下錯(cuò)誤:
配置選項(xiàng) 'Ad Hoc Distributed Queries' 不存在,也可能是高級選項(xiàng)。
這時(shí),你就需要打開高級配置:
EXEC sp_configure 'show advanced option' 1
RECONFIGURE
總的操作就按照上面逆序執(zhí)行即可:
EXEC sp_configure 'show advanced option' 1
RECONFIGURE
EXEC sp_configure 'Ad Hoc Distributed Queries' 1
RECONFIGURE
注意:上面的RECONFIGURE是用以動(dòng)態(tài)更新選項(xiàng)的操作,如果不執(zhí)行,則sp_configure的執(zhí)行結(jié)果不會被保持。
另外,對于SQLExPRession 2005,則需要執(zhí)行:
EXEC sp_configure 'user instance enabled' 1
RECONFIGURE