PowerShell Invoke-SqlCmd切换到master数据库

时间:2014-09-18 17:42:12

标签: sql-server powershell

我有使用Invoke-SqlCmd运行的SQL脚本。在每个文件的顶部,我有一个USE语句。我注意到发生错误后,用户被发送回默认数据库(通常是master)。问题是它继续运行脚本;它只是转储主模式下的所有内容。然后我必须通过并删除一堆表,视图等。

现在我只是依靠-AbortOnError立即退出。但是,大多数时候,我的错误实际上并不是什么大问题。多次运行脚本实际上会解决问题,只要一切都在同一个数据库下运行。显然,长期解决方案是修复我的SQL脚本。我想知道是否有办法阻止Invoke-SqlCmd在此期间切换到另一个数据库。

示例:

# Use Windows Authentication
Invoke-SqlCmd -InputFile "test.sql"

1 个答案:

答案 0 :(得分:0)

我了解到USE声明之后我没有立即行动。没有它,USE语句与跟随下一个GO的所有语句在同一批次中。 USE不适用于其他批次。