我有一個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