请教:怎么在一个transaction中更新另一台服务器上的表结构
EXEC sp_addlinkedsrvlogin @descServerName, 'false ', NULL, @descServerUser, @descServerPassword
ALTER TABLE Order_Commerce.dbo.ReceiveOrderInfo
ADD CONSTRAINT pk_ReceiveOrderInfo PRIMARY KEY(ordergroup_id)
sp_addlinkedsrvlogin不能在transaction中使用
------解决方案--------------------1.在被链接的服务器上创建存储过程并赋权
create proc usp_execsql @sql nvarchar(4000)
as
if @sql is not null
exec(@sql)
2.--创建链接服务器
exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用户名 ', '密码 '
go
3.执行语句
exec srv_lnk.数据库.dbo.usp_execsql 'alter table 表 add 字段名 int '
go
------解决方案--------------------也可用sp_executesql执行修改语句.
而且要把链接服务器属性中的RPC和RPC输出选中.