请教一个Link Server的问题
我建立了一个LINK Server,写了一个存储过程更新远程SQLServer的数据。
采用如下方法没有问题:
CREATE PROCEDURE aaa_Edit
@sUserLink varchar(30),
@ID int,
@sResult varchar(2) OUTPUT
AS
DECLARE @sSql varchar(1000)
BEGIN DISTRIBUTED TRANSACTION
SET @sSql = @sUserLink + '.DBName.dbo.EditUser'
EXEC @sSql @ID
IF @@ERROR <> 0 OR @@ROWCOUNT = 0
BEGIN
ROLLBACK TRANSACTION
SET @sResult = '1'
RETURN
END
ELSE
BEGIN
COMMIT TRANSACTION
SET @sResult = '0'
RETURN
END
GO
但是我直接在存储过程里面UPDATE远程服务器的数据的时候,却不行
UPDATE DBName.DBName.dbo.aaa SET ID = @ID
请问是为什么?
问题点数:100、回复次数:4Top
1 楼viptiger(六嘎)回复于 2003-12-01 11:50:46 得分 5
报什么错误?Top
2 楼free_eyes(自由之眼)回复于 2003-12-01 11:54:20 得分 0
什么错误都不报 ,运行UPDATE DBName.DBName.dbo.aaa SET ID = @ID后@@ERROR = 0;@@ROWCOUNT = 1
但是远端服务器数据没有变化,没有执行。Top
3 楼viptiger(六嘎)回复于 2003-12-01 11:58:22 得分 5
SET @sSql = @sUserLink + '.DBName.dbo.EditUser'
EXEC @sSql @ID
有错误!Top
4 楼viptiger(六嘎)回复于 2003-12-01 12:05:42 得分 90
--要写
declare @sSql nvarchar(600)
set @sSql = @sSql +N' ' + @ID
execute sp_executesql
@sSql,
N'@ID'
Top




