本篇文章給大家分享的是有關(guān)怎么用SQL Server啟用Ad Hoc Distributed Queries,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需求定制開發(fā),是成都網(wǎng)站建設(shè)公司,為成都銅雕雕塑提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站維護(hù)熱線:13518219792
SQLServer數(shù)據(jù)庫遠(yuǎn)程操作中,在使用openrowset/opendatasource前首先要啟用AdHocDistributedQueries服務(wù),因為這個服務(wù)不安全所以SqlServer默認(rèn)是關(guān)閉的。下面創(chuàng)新互聯(lián)小編來講解下如何用SQLServer啟用AdHocDistributedQueries?
如何用SQLServer啟用AdHocDistributedQueries
1、啟用AdHocDistributedQueries的方法
SQLServer阻止了對組件'AdHocDistributedQueries'的STATEMENT'OpenRowset/OpenDatasource'的訪問,因為此組件已作為此服務(wù)器安全配置的一部分而被關(guān)閉。系統(tǒng)管理員可以通過使用。sp_configure啟用'AdHocDistributedQueries'。
啟用AdHocDistributedQueries的方法,執(zhí)行下面的查詢語句就可以了:
execsp_configure'showadvancedoptions',1reconfigureexecsp_configure'AdHocDistributedQueries',1reconfigure
使用完畢后,記得一定要關(guān)閉它,因為這是一個安全隱患,切記執(zhí)行下面的SQL語句:
execsp_configure'AdHocDistributedQueries',0reconfigureexecsp_configure'showadvancedoptions',0reconfigure
2、使用示例
創(chuàng)建鏈接服務(wù)器
execsp_addlinkedserver'ITSV','','SQLOLEDB','遠(yuǎn)程服務(wù)器名或ip地址'execsp_addlinkedsrvlogin'ITSV','false',null,'用戶名','密碼'
查詢示例
select*fromITSV.數(shù)據(jù)庫名.dbo.表名
導(dǎo)入示例
select*into表fromITSV.數(shù)據(jù)庫名.dbo.表名
以后不再使用時刪除鏈接服務(wù)器
execsp_dropserver'ITSV','droplogins'
如何用SQLServer啟用AdHocDistributedQueries
3、連接遠(yuǎn)程/局域網(wǎng)數(shù)據(jù)(openrowset/openquery/opendatasource)
1、openrowset
查詢示例
select*fromopenrowset('SQLOLEDB','sql服務(wù)器名';'用戶名';'密碼',數(shù)據(jù)庫名.dbo.表名)
生成本地表
select*into表fromopenrowset('SQLOLEDB','sql服務(wù)器名';'用戶名';'密碼',數(shù)據(jù)庫名.dbo.表名)
把本地表導(dǎo)入遠(yuǎn)程表
insertopenrowset('SQLOLEDB','sql服務(wù)器名';'用戶名';'密碼',數(shù)據(jù)庫名.dbo.表名)select*from本地表
更新本地表
updatebsetb.列A=a.列Afromopenrowset('SQLOLEDB','sql服務(wù)器名';'用戶名';'密碼',數(shù)據(jù)庫名.dbo.表名)asainnerjoin本地表bona.column1=b.column1
openquery用法需要創(chuàng)建一個連接。
首先創(chuàng)建一個連接創(chuàng)建鏈接服務(wù)器
execsp_addlinkedserver'ITSV','','SQLOLEDB','遠(yuǎn)程服務(wù)器名或ip地址'
查詢
select*FROMopenquery(ITSV,'SELECT*FROM數(shù)據(jù)庫.dbo.表名')
把本地表導(dǎo)入遠(yuǎn)程表
insertopenquery(ITSV,'SELECT*FROM數(shù)據(jù)庫.dbo.表名')select*from本地表
更新本地表
updatebsetb.列B=a.列BFROMopenquery(ITSV,'SELECT*FROM數(shù)據(jù)庫.dbo.表名')asainnerjoin本地表bona.列A=b.列A
2、opendatasource/openrowset
SELECT*FROMopendatasource('SQLOLEDB','DataSource=ip/ServerName;UserID=登陸名;Password=密碼').test.dbo.roy_ta
把本地表導(dǎo)入遠(yuǎn)程表:
insertopendatasource('SQLOLEDB','DataSource=ip/ServerName;UserID=登陸名;Password=密碼').數(shù)據(jù)庫.dbo.表名select*from本地表。
以上就是怎么用SQL Server啟用Ad Hoc Distributed Queries,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。