我有以下SQL脚本,旨在从一台服务器读取数据并将其插入另一台服务器。
INSERT INTO DSTSERVER.DSTDB.DBO.DSTTBL_STAGING (policy, lastname, agency)
SELECT
col001 AS policy,
col005 AS lastname,
col020 AS Agency
FROM
SRCSERVER.SRCDB.dbo.SRCTBL
我尝试这样调用此脚本:
$ sqlcmd -U sqluser -P 'changeme' -i multiserver.sql
我得到了这个错误:
消息7202,第11级,状态2,服务器DSTSERVER,第2行
在sys.servers中找不到服务器“ SRCSERVER”。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver将服务器添加到sys.servers。
在创建链接服务器时应该注意哪些弊端?
如果我创建链接服务器,我的查询是否可以工作?
是否需要更改查询才能正常工作?
我在SQL Server Management Studio的SQL Server Agent
中有类似的(多服务器)查询。在没有链接服务器的情况下如何连接?
尽管此测试用例基本上只是复制一个表,但我正在寻找在一个SQL命令中混合服务器的通用解决方案,以便可以以多种方式使用它,例如MERGE命令。
我将始终运行此命令,以使远程服务器为只读服务器。
我将查询移到SQL Server代理之外,以便可以将脚本放在标准源控制器下,并使用与运行其他作业相同的系统来运行脚本。