我想为我使用以下查询实现BEGIN DISTRIBUTED TRANSACTION(Transact-SQL)。
USE LOXF;
GO
BEGIN DISTRIBUTED TRANSACTION;
-- Delete candidate from local instance.
DELETE DatatbaseName.dbo.TBLUSERPROFILE
WHERE USERINDEX = 13;
-- Delete candidate from remote instance.
DELETE RemoteServer.DatatbaseName.dbo.TBLUSERPROFILE
WHERE USERINDEX = 13;
COMMIT TRANSACTION;
GO
但是当我在查询上面运行时,我收到错误说"找不到服务器' RemoteServer'在sys.servers中。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver将服务器添加到sys.servers"。所以请让我知道我错在哪里。
答案 0 :(得分:2)
您必须先创建链接服务器,然后才能对其发出查询。
这可以使用sp_addlinkedserver
存储过程(如所声明的错误消息)或使用GUI完成:
启动SSMS;在对象资源管理器中,在您的服务器下,找到服务器对象,然后找到链接服务器,并从上下文菜单中选择新建链接服务器。
如果远程服务器也是SQL Server,则输入服务器名称就足够了。您可能还需要设置安全性。如果您在两台服务器上都使用Windows身份验证,并且可以正常访问远程服务器本身,则只需选择“使用登录的当前安全上下文制作”单选按钮即可。