使用sqlcmd命令行连接到多个数据库

时间:2018-08-09 03:29:54

标签: sql-server sqlcmd

我有以下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。

所以我在看这个链接: https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-addlinkedserver-transact-sql?view=sql-server-2017

在创建链接服务器时应该注意哪些弊端?

如果我创建链接服务器,我的查询是否可以工作?

是否需要更改查询才能正常工作?

我在SQL Server Management Studio的SQL Server Agent中有类似的(多服务器)查询。在没有链接服务器的情况下如何连接?

尽管此测试用例基本上只是复制一个表,但我正在寻找在一个SQL命令中混合服务器的通用解决方案,以便可以以多种方式使用它,例如MERGE命令。

我将始终运行此命令,以使远程服务器为只读服务器。

我将查询移到SQL Server代理之外,以便可以将脚本放在标准源控制器下,并使用与运行其他作业相同的系统来运行脚本。

0 个答案:

没有答案