停止SSMS 2012從腳本的SP我意識到這是Stop SSMS from scripting SPs using sp_executesql?如何使用sp_executesql
一個非常類似的問題。然而,他們似乎已經改變了與2012年SSMS
行爲如果你有「檢查對於存在」選項中選擇,如:
...現在生成IF NOT EXISTS爲將要創建的PROC,以及爲我˚F存在以前下降PROC,如果像我通常做,我選擇刪除並創建選項:
這迫使腳本在CREATE使用sp_executesql。這是毫無意義的,因爲如果DROP剛剛刪除它,你不需要對CREATE進行IF NOT EXISTS檢查。
似乎不可能有一個沒有另一個。
任何想法?
感謝您 - 我懷疑這一點。我真正想要的是IF EXISTS和IF NOT EXISTS的選項。我現在可以忽略DROP錯誤,但是這些腳本是通過自動過程運行的,並且在某些時候我需要解析腳本日誌來檢查錯誤。他們似乎已經做出了這一改變的逆行步驟之一。 – ChrisA
他們更新了措辭(這可能部分是我的錯)。請參閱http://connect.microsoft.com/SQLServer/feedback/details/624075/include-if-not-exists-clause-impacts-drop-scripting http://connect.microsoft.com/SQLServer/feedback/details/ 242799/ssms-certain-scripting-options-yield-dynamic-sql and https://connect.microsoft.com/SQLServer/feedback/details/242795/ssms-certain-scripting-options-do-not-work-for-修改 –
是的,我沒有爲措辭煩惱。這是事實,如果我想要IF EXISTS(以防止DROP錯誤),我也被迫在創建時使用IF NOT EXISTS,這反過來又迫使創建成爲sp_executesql的一個參數,我也不會不要 - 因爲任何無意的錯別字都不會產生明顯的錯誤。之前沒有問題 - IF EXISTS在默認情況下存在,我沒有打開IF NOT EXISTS。在*不*有IF EXISTS一個單獨的選項,對我來說現在比SQL08更糟糕。 – ChrisA