3

从一台运行 SQL Server 2000 (A) 的服务器和另一台运行 SQL Server 2008 (B) 的服务器移动特定数据时,我遇到了一些问题。我正在根据客户规范编写一个脚本,该脚本将在 A 上执行,用数据填充 B 中的表。但是,我似乎无法使服务器链接正常工作。

-- Bunch of declarations here

EXEC sp_addlinkedserver @server = @ServerName,
            @srvproduct = @ServerProduct,
            @provider = @ProviderString,
            @datasrc = @RemoteHost

-- Data migration stuff here

EXEC sp_dropserver @ServerName

现在,如果我完整地运行脚本,我会收到一条错误消息:

消息 7202,级别 11,状态 2,第 55 行在 sysservers 中找不到服务器“remoteServer”。执行 sp_addlinkedserver 将服务器添加到 sysservers。

但是,如果我只突出显示sp_addlinkedserver部分并执行该部分,则没有错误,我可以突出显示脚本的其余部分并运行它。我在这里想念什么?

请帮忙!

PS。如果备份-恢复是一个选项,我早就这样做了。

4

1 回答 1

2

问题是 SQL Server 正在尝试在运行代码之前对其进行验证。为了证明这一点,请尝试将您的命令之一放在 EXEC() 中。尝试在 sp_addlinkedserver 命令之后放置一个 GO。

于 2010-06-17T14:32:21.873 回答