下午好一切 -SQL創建過程中止邏輯
我需要在幾個地方運行的修補程序臨時存儲過程,我想中止SP如果版本的創建和編譯的應用程序不完全是我輸入的。我有基本的想法,但我希望消息在沒有嘗試編譯SP的所有架構問題的情況下出來。
這裏基本上是我有:
IF EXISTS ... DROP PROCEDURE
SELECT TOP 1 Version INTO #CurrentVersion FROM Application_Version ORDER BY UpdateDate DESC
IF NOT EXISTS (SELECT 1 FROM #CurrentVersion WHERE Version = 10)
RAISERROR ('This is for U10 only. Check the application version.', 20, 1) WITH LOG
CREATE PROCEDURE ....
的RAISERROR使SP在DB不會落得和我得到一個錯誤,但我也有由於架構更改架構錯誤結束過去。由於SP需要成爲批處理中的第一條語句,我不能使用IF/ELSE,NOEXEC會產生與RAISERROR相同的結果(沒有錯誤)。
對於如果沒有SP檢查模式,如果它碰到RAISERROR,所以我不會收到一堆額外的消息,從而得到上述所有相同結果的任何想法?
謝謝,這實際上與我期望做的最合適。 SQLCMD可以完美工作,但我希望能夠防範那些明顯沒有足夠關注SP的文檔和命名的人,並且錯過版本註釋的人可能看不到另一個註釋切換到SQLCMD模式。感謝大家的幫助! – user1293946 2012-03-27 15:09:01