使sqlcmd与批处理分隔符一起使用

时间:2013-04-17 15:49:30

标签: syntax batch-processing sqlcmd

背景资料:

我正在尝试设置批处理作业,以便在不同的sql server之间同步存储过程。我确实将所有存储过程导出到单独的.sql文件到我的文件夹中。每当我想创建一个新的存储过程或为那些多个服务器更改它时,我在1台服务器上测试它,直到我按照我想要的方式获得它。之后我将它导出到我的文件夹中。然后将其部署到其他服务器,我只需执行批处理 - 就是这样。


我几乎想出了我想要的方式。唯一有问题的是,sqlcmd似乎不喜欢标准的批处理分隔符'GO'('Incorrect syntax near 'GO'.')。所以我已将默认批处理分隔符更改为“RUN”,在我的.sql文件中将每个“GO”命令替换为“RUN”,并将-c RUN添加到我的sqlcmd命令中。

然而它告诉我'Incorrect syntax near 'RUN'.'

出于测试目的,我只是尝试了1个缩小的sql文件,看起来像这样:

USE [MyDatabase]
GO

即使这样也行不通。我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:0)

尝试从这些脚本中省略GORUN。您可以在没有它们的情况下更改数据库上下文。

你可以做这样的事情:

USE MyDatabase;
--First query

USE MyOtherDatabase;
--Second query