我有使用Invoke-SqlCmd
运行的SQL脚本。在每个文件的顶部,我有一个USE
语句。我注意到发生错误后,用户被发送回默认数据库(通常是master
)。问题是它继续运行脚本;它只是转储主模式下的所有内容。然后我必须通过并删除一堆表,视图等。
现在我只是依靠-AbortOnError
立即退出。但是,大多数时候,我的错误实际上并不是什么大问题。多次运行脚本实际上会解决问题,只要一切都在同一个数据库下运行。显然,长期解决方案是修复我的SQL脚本。我想知道是否有办法阻止Invoke-SqlCmd
在此期间切换到另一个数据库。
示例:
# Use Windows Authentication
Invoke-SqlCmd -InputFile "test.sql"
答案 0 :(得分:0)
我了解到USE声明之后我没有立即行动。没有它,USE语句与跟随下一个GO的所有语句在同一批次中。 USE不适用于其他批次。