在某些場合中。需要涉及到跨資料庫伺服器的兩個資料庫例項間進行資料操作,在這種場合下,可以使用
sp_addlinkedserver
和sp_addlinkedsrvlogin
這兩個sql server
自帶的儲存過程在某一台
sql server
資料庫伺服器上建立鏈結伺服器。建立好鏈結伺服器,對另乙個
sql server
的操作就和操作本地資料庫一樣,待使用完後,用儲存過程
sp_dropserver
釋放鏈結伺服器即可。
1.建立鏈結伺服器和登入鏈結伺服器。
//////
建立和登入鏈結伺服器
///privatestaticvoidcreatelinkedserver()
paras[0].parametername = "server";
paras[0].value = "stager";
paras[1].parametername = "srvproduct";
paras[1].value = "";
paras[2].parametername = "provider";
paras[2].value = "sqloledb";
paras[3].parametername = "datasrc";
paras[3].value = server;
stringsql = @"sp_addlinkedserver";
mcmsdao.executenoncmd(sql, commandtype.storedprocedure, paras);
//登入鏈結伺服器
iparam paras2 =newdbparam[5];
for(inti = 0; i < paras2.length; i++)
paras2[0].parametername = "rmtsrvname";
paras2[0].value = "stager";
paras2[1].parametername = "useself";
paras2[1].value = "false";
paras2[2].parametername = "locallogin";
paras2[2].value =null;
paras2[3].parametername = "rmtuser";
paras2[3].value = user;
paras2[4].parametername = "rmtpassword";
paras2[4].value = pwd;
stringsql2 = @"sp_addlinkedsrvlogin";
mcmsdao.executenoncmd(sql2, commandtype.storedprocedure, paras2);}2.
釋放鏈結伺服器。
//////
刪除鏈結伺服器
///privatestaticvoiddroplinkedserver()
paras[0].parametername = "server";
paras[0].value = "stager";
paras[1].parametername = "droplogins";
paras[1].value = "droplogins";
stringsql = @"sp_dropserver";
mcmsdao.executenoncmd(sql, commandtype.storedprocedure, paras);}3.
判斷鏈結伺服器是否存在
//////
判斷鏈結伺服器是否存在
//////
privatestaticboolhaslinkedserverexists()
returntrue;}4.
使用方法。
insert intostager.cmsdb.
dbo.increasedchannelinfo(url)
select url from cmsposting where url is not null
上面的sql
語句將資料庫表
cmsposting
中滿足條件的記錄插入到鏈結伺服器
stager
的資料庫例項
cmsdb
中的表increasedchannelinfo
。注:在建立鏈結伺服器前需要判斷鏈結伺服器是否已經存在,如果已經存在,就直接操作就可以了。
sql語句跨伺服器跨資料庫執行
加為好友 傳送私信 發表於 2009 04 15 21 38 42 得分 0 sql語句跨伺服器跨資料庫執行 第一種方法 select from opendatasource sqloledb server 伺服器ip uid sa pwd 密碼 庫名.dbo.表名 第二種方法 先使用聯結伺服器 e...
讓你的sql語句跨伺服器跨資料庫跨表執行
第一種方法 select from opendatasource sqloledb data source 遠端ip user id sa password 密碼 庫名.dbo.表名 第二種方法 先使用聯結伺服器 exec sp addlinkedserver 別名 msdasql null,nul...
跨伺服器訪問Sql資料庫
用openrowset連線遠端sql或插入資料 如果只是臨時訪問,可以直接用openrowset 查詢示例 select from openrowset sqloledb sql伺服器名 使用者名稱 密碼 資料庫名.dbo.表名 匯入示例 select into 表 from openrowset ...