【发布时间】:2017-05-25 14:28:56
【问题描述】:
我有一个 SQL 脚本,当我逐行浏览它时,它的工作方式完全符合我的要求。起初,这是一个可行的选择,但随着时间的推移脚本变得越来越大,现在单步执行它很糟糕。
我尝试在 Visual Studio 中将脚本作为 SSIS 包的一部分运行,但这给了我奇怪的结果。
我有一种感觉,这是因为我在脚本中使用了混合语言,(即多个 UPDATE、ALTER、SELECT INTO、语句)... 有没有办法自动化这个脚本,让它逐行运行就好像我在踩它一样?
善良。谢谢!
【问题讨论】:
-
您需要先提交 DDL 更改,然后才能进入下一个块。我认为 SQL Server 使用 GO。 stackoverflow.com/questions/1432757/… 可能会有所帮助。 GO 执行上一个“GO”中的所有语句,因此如果您正在对 DDL 进行更改,则可以在下一系列事务之前进行更新,从而使更改生效。
-
这是为了调试目的吗?为什么不将脚本拆分成多个包/多个存储过程?
-
Sure More on GO:这里:docs.microsoft.com/en-us/sql/t-sql/language-elements/… 请小心,因为如果您执行 go 两次而没有脚本更改,我相信它会运行 TSQL 语句两次,如果您将 1 添加到一些值你最终可能会加 2!
-
我不相信你需要第一个 Go;我一般会先做 DDL 然后再去,然后做数据更新,这样我的 go 就更少了。
-
我不太确定 GO 是唯一的解决方案。我认为您还需要用分号终止每个单独的查询。
标签: sql sql-server visual-studio ssis