Syntax 使sqlcmd与批处理分隔符一起工作

Syntax 使sqlcmd与批处理分隔符一起工作,syntax,batch-processing,sqlcmd,Syntax,Batch Processing,Sqlcmd,背景资料: 我正在尝试设置一个批处理作业,以便在不同的sql Server之间同步存储过程。我确实将所有存储过程导出到单独的.sql文件中,并保存到我的文件夹中。每当我想为这些多个服务器创建一个新的存储过程或对其进行更改时,我都会在一台服务器上测试它,直到得到我想要的存储过程为止。然后我将它导出到我的文件夹中。然后,为了将其部署到其他服务器,我只需执行一个批处理即可 我几乎按照我想要的方式算出了我的批次。唯一的问题是,sqlcmd似乎不喜欢标准的批处理分隔符“GO”(“GO”附近的语法不正确)

背景资料:

我正在尝试设置一个批处理作业,以便在不同的sql Server之间同步存储过程。我确实将所有存储过程导出到单独的.sql文件中,并保存到我的文件夹中。每当我想为这些多个服务器创建一个新的存储过程或对其进行更改时,我都会在一台服务器上测试它,直到得到我想要的存储过程为止。然后我将它导出到我的文件夹中。然后,为了将其部署到其他服务器,我只需执行一个批处理即可


我几乎按照我想要的方式算出了我的批次。唯一的问题是,sqlcmd似乎不喜欢标准的批处理分隔符“GO”(
“GO”附近的语法不正确)。
)。因此,我将默认的批处理分隔符更改为“RUN”,将.sql文件中的每个“GO”命令替换为“RUN”,并将
-c RUN
添加到我的
sqlcmd
命令中

但是,它随后告诉我“RUN”附近的语法不正确。

出于测试目的,我刚刚用1个收缩的sql文件进行了测试,如下所示:

USE [MyDatabase]
GO
USE MyDatabase;
--First query

USE MyOtherDatabase;
--Second query

即使这样也不行。如何使其工作?

尝试从这些脚本中删除
GO
RUN
。您可以在不使用它们的情况下更改数据库上下文

您可以这样做:

USE [MyDatabase]
GO
USE MyDatabase;
--First query

USE MyOtherDatabase;
--Second query

没有人回答这个问题吗?