从运行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
现在,如果我完整地运行脚本,我会收到错误消息:
Msg 7202,Level 11,State 2,Line 55 找不到服务器'remoteServer' 在sysservers中。执行 sp_addlinkedserver添加服务器 到sysservers。
但是,如果我只突出显示sp_addlinkedserver
部分并执行它,则没有错误,我可以突出显示脚本的其余部分并运行它。我在这里错过了什么?
请帮忙!
PS。如果备份还原是一个选项,我本来就已经这样做了。
答案 0 :(得分:2)
问题是SQL Server在运行代码之前尝试验证代码。为了表明这一点,尝试将一个命令放在EXEC()中。尝试在sp_addlinkedserver命令后放置一个GO。