Sql server 您是否可以让SQLCMD立即运行脚本中的每个语句,而不使用;围棋;?
在SQLCMD中运行脚本时,是否有设置、参数或任何其他方式使其在每个SQL语句末尾有效地运行GO命令Sql server 您是否可以让SQLCMD立即运行脚本中的每个语句,而不使用;围棋;?,sql-server,sqlcmd,Sql Server,Sqlcmd,在SQLCMD中运行脚本时,是否有设置、参数或任何其他方式使其在每个SQL语句末尾有效地运行GO命令 这将避免在非常大的脚本中插入周期性GO命令。Hmmm,我想这不会有帮助,但可以回答您的问题: -c cmd_结束 指定批处理终止符。默认情况下,通过在命令行上键入单词“GO”来终止命令并将其发送到SQL Server。重置批处理终止符时,不要使用对操作系统具有特殊意义的Transact-SQL保留关键字或字符,即使它们前面有反斜杠 尤其是最后一句话听起来令人畏惧 如果你所有的台词都以英语结尾;
这将避免在非常大的脚本中插入周期性GO命令。Hmmm,我想这不会有帮助,但可以回答您的问题: -c cmd_结束 指定批处理终止符。默认情况下,通过在命令行上键入单词“GO”来终止命令并将其发送到SQL Server。重置批处理终止符时,不要使用对操作系统具有特殊意义的Transact-SQL保留关键字或字符,即使它们前面有反斜杠 尤其是最后一句话听起来令人畏惧 如果你所有的台词都以英语结尾;而且没有;任何其他位置(例如在文本字段中) 试一试 没有 SQLCMD必须自己实现一个完整的T-SQL解析器,以确定语句边界的位置。然而,由于它目前的存在,它所要做的就是找到带有“GO”的行
考虑到“;”终止符对于大多数语句来说仍然是可选的,因此确定语句边界可能相当棘手。我重新编写了标题,以便更好地符合整个问题。很抱歉,如果这使你的回答不那么有意义。当我最初发布这个问题时,我以为我已经更改了它,但不知怎的,它又恢复了。@QuickBrownFox你能添加几行代码,让我们看看你的脚本是什么样子吗?如果它的每一行都有一条白线,那么-c可能没有任何作用,trickIt只是插入跨越多行并以分号结尾的语句。每条语句之间用一个换行符分隔(即没有空行)。似乎不可能将-c参数与“nothing”一起使用;谢谢我试过了。它需要在自己的行上加一个分号来运行该命令,这不是期望的效果。我想我想要的是不可能的。我想这就解决了。除非有人知道如何在一行以分号结尾时执行“GO”,这仍然可以有效地解决我的问题。@QuickBrownFox-不幸的是,没有。rene链接的页面上没有很好的文档记录,但批处理终止符必须位于行的开头(前导空格除外)。当然,如果您有一个像样的文本编辑器,您可以编辑脚本,将“;”替换为“;\nGO\n”
sqlcmd -c ;