我正在寫一個數據庫更新腳本基本上從數據庫中檢索當前的版本號,然後創建了一些存儲過程如果版本是有效的有條件創建存儲過程。如果當前版本與預期版本不匹配,那麼它應該跳過執行代碼。使用TSQL
但是我在編寫腳本時遇到了一個問題,因爲CREATE PROCEDURE必須是批處理中的第一條語句,所以我無法在創建過程語句之前插入if .. else語句。
我也使用GOTO嘗試,但都無濟於事,因爲GOTO不能跨多個批次跨越。同樣的事情適用於RETURN和RAISEERROR - 其餘的代碼仍然會執行。
示例腳本:
IF @Version = '1.0' --doesn't work
BEGIN
CREATE PROCEDURE dbo.uspCreateAccount
AS BEGIN
--The rest of the code goes here
END
END
任何人都可以提供這方面的一些見解?
看起來不錯。將嘗試一下。謝謝! – user1928346