背景资料:
我正在尝试设置批处理作业,以便在不同的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
即使这样也行不通。我怎样才能使它发挥作用?
答案 0 :(得分:0)
尝试从这些脚本中省略GO
或RUN
。您可以在没有它们的情况下更改数据库上下文。
你可以做这样的事情:
USE MyDatabase;
--First query
USE MyOtherDatabase;
--Second query