球墨铸铁给水管防腐:在线急等一条SQL语句,大家帮帮忙!!!!!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 06:25:31
update opendatasource('SQLOLEDB','Data Source=192.168.0.93;User ID=Sa;Password=').cy_Bank.dbo.TblPsn_Bank
set 薪资=b.薪资 from opendatasource('SQLOLEDB','Data Source=192.168.0.93;User ID=Sa;Password=').cy_Bank.dbo.TblPsn_Bank a ,
tblmsalarytmpzy b where a.工号=b.工号 and 年份='2005' and 月份='10'

exec sp_addlinkedserver '192.168.0.93','SQL Server'
update [192.168.0.93].cy_Bank.dbo.TblPsn_Bank set 薪资=b.薪资 from [192.168.0.93].cy_Bank.dbo.TblPsn_Bank a ,
tblmsalarytmpzy b where a.工号=b.工号 and 年份='2005' and 月份='10'

这两条语句为什么得到的结果不一样?它们仅仅是一个直接远程访问,一个是连接服务器后访问,而其他条件都是一样的,正确的结果是第二条。那么第一条要怎么修改?
第二条是不能使用的,因为没有sp权限
那第一条语句要怎麽修改??

update opendatasource ......
from opendatasource.........
原因在于:第一种两次调用了opendatasource方法,
相当于返回了两次远程连接,这样update的执行顺序会打乱.

第一个看上去没问题,说不出原因

不过,第二个正规些, 尽可能用第二个吧