我有一个SQL脚本,当我逐行执行时,它的工作方式与我想要的完全一样。起初,这是一个可行的选择,但随着时间的推移,脚本变得越来越大,现在逐渐消失。使用多种语句类型自动执行SQL脚本
我试图运行该脚本作为Visual Studio中的SSIS包的一部分,但这给了我奇怪的结果。
我有一种感觉,这是因为我在脚本中混合了语言(即多个UPDATE,ALTER,SELECT INTO,语句)... 有没有一种方法来自动执行此脚本,使其逐行运行如果我正在通过它?
善良。谢谢你!
我有一个SQL脚本,当我逐行执行时,它的工作方式与我想要的完全一样。起初,这是一个可行的选择,但随着时间的推移,脚本变得越来越大,现在逐渐消失。使用多种语句类型自动执行SQL脚本
我试图运行该脚本作为Visual Studio中的SSIS包的一部分,但这给了我奇怪的结果。
我有一种感觉,这是因为我在脚本中混合了语言(即多个UPDATE,ALTER,SELECT INTO,语句)... 有没有一种方法来自动执行此脚本,使其逐行运行如果我正在通过它?
善良。谢谢你!
一般来说。所有你需要的是每个语句之后的分号,这与语句类型无关。只有当你想把它分成批时才需要“Go”(尽管如果你将代码传递给别的东西,例如ADO.NET命令对象,它可能不起作用)。如果您希望代码在“go”之前继续运行而不管代码是成功还是失败,这都会很有帮助。如果您希望代码的继续依赖于以前的代码,请确保以“;”结束每个语句。
在移动到下一个块之前,您需要提交DDL更改。我认为SQL Server使用GO。 https://stackoverflow.com/questions/1432757/sql-server-script-alter-procedure-executing-multiple-alter-procedure-into-one可能会有所帮助。 GO执行最后一个“GO”中的所有语句,因此如果您要更改DDL,则可以在下一系列事务之前进行更新,以使更改生效。 – xQbert
这是为了调试目的吗?为什么不将脚本分成多个包/多个存储过程? – Alexei
@Alexei理想情况下,我想部署此自动运行。当我转移到Visual Studio时,我试图将脚本分成多个包,但由于我写了脚本的线性方式,它没有给我预期的结果。 – hansolo