如何实现跨服务器的SQL查询语句??

chuanyi 2005-12-02 02:20:30
192.168.0.1有tbl1,字段:工号
192.168.0.2有tbl2,字段:工号
我想查询:tbl1中存在而tbl2中不存在的工号,并且把tbl1中的工号导入tbl2中,应该如何实现??
我想大概的语句因该是这样的,但具体的写不出来,望高人指教:
select 工号 from tbl1 where 工号 not in ……………
这里可以建立两个连接,cnn1和cnn2
...全文
1360 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
junhao_666 2005-12-03
  • 打赏
  • 举报
回复
帮顶!
chuanyi 2005-12-03
  • 打赏
  • 举报
回复
怎麽判斷數據庫聯接狀態?着急!!!!!
zouqiang122 2005-12-02
  • 打赏
  • 举报
回复
支持一下!!!
chuanyi 2005-12-02
  • 打赏
  • 举报
回复
怎麽判斷是否連接上了?
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','192.168.0.2'
這條語句,如果沒有連接,執行語句就會成功,如果已經連接,再執行語句就會報錯呀
chuanyi 2005-12-02
  • 打赏
  • 举报
回复
那怎麽判斷是否連接上了?
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','192.168.0.2'
這條語句,如果沒有連接,執行語句就會成功,如果已經連接,再執行語句就會報錯呀
難道要使用觸發器,每次自動關閉?那太不方便了。有什麽可以判斷的語句嗎?
OracleRoob 2005-12-02
  • 打赏
  • 举报
回复


1、假设本地服务器192.168.0.1,远端服务器192.168.0.2。
2、在192.168.0.2服务器上建立用户:User,密码:000
3、在192.168.0.1服务器上执行如下语句:
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','192.168.0.2'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'User','000'
go
3、在本地访问192.168.0.2上的数据库查询示例如下:
select * from srv_lnk.数据库名.dbo.表名
4、以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
go
5、你所说的语句应该是:
select 工号 from tbl1 where 工号 not in (select 工号 from srv_lnk.数据库名.dbo.tbl2)

insert into srv_lnk.数据库名.dbo.tbl2(工号)
select 工号 from tbl1 where 工号 not in (select 工号 from srv_lnk.数据库名.dbo.tbl2)

注意:此语句应该在本地服务器192.168.0.1上执行
chuanyi 2005-12-02
  • 打赏
  • 举报
回复
ls_jingwen(靜雯) 同学的这个方法怎么使用啊?我拷贝下来直接在192.168.0.1下的SQL2000中运行,报错啊
Could not find server '192.26.0.2' in sysservers. Execute sp_addlinkedserver to add the server to sysservers.
ls_jingwen 2005-12-02
  • 打赏
  • 举报
回复
必須先將Server連接進目前的SQL Server中才行,而連接方法是建立連接伺服器:
exec sp_addlinkedserver '192.168.0.1','SQL Server'
exec sp_addlinkedserver '192.168.0.2','SQL Server'
select 工号 into a from [192.26.0.1].dbname.dbo.tab1 where 工号 not in (select 工号 from [192.26.0.2].dbname.dbo.tbl2)
insert into [192.26.0.2].dbname.dbo.tbl2 from select * from a
yitangliang 2005-12-02
  • 打赏
  • 举报
回复
建立链接服务器,然后就可以了

select 工号 from tbl1 where 工号 not in (select 工号 from [192.26.0.2].dbname.dbo.tbl2)
hlq8210 2005-12-02
  • 打赏
  • 举报
回复
用分布是查询

34,589

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧