![](/img/trans.png)
[英]Powershell Invoke-Sqlcmd hits wrong database - system, why?
[英]PowerShell Invoke-SqlCmd switching to master database
我有使用Invoke-SqlCmd
運行的SQL腳本。 在每個文件的頂部,我都有一個USE
語句。 我注意到發生錯誤后,用戶將被發送回其默認數據庫(通常是master
)。 問題在於它繼續運行腳本。 它只是將所有內容轉儲到主模式下。 然后,我必須檢查並刪除一堆表,視圖等。
現在,我只是依靠-AbortOnError
立即退出。 但是,在大多數情況下,我的錯誤實際上並不重要。 只要所有內容都在同一數據庫下運行,多次運行腳本實際上可以解決問題。 顯然,長期的解決方案是修復我的SQL腳本。 我想知道是否有一種方法可以防止Invoke-SqlCmd
切換到其他數據庫。
例:
# Use Windows Authentication
Invoke-SqlCmd -InputFile "test.sql"
我了解到在USE語句之后沒有立即執行GO操作。 沒有它,USE語句與它之后的下一個GO的所有語句在同一批中。 USE不適用於其他批次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.