2013-10-23 32 views
2

是否有可能配置SQL服務器(或者的LocalDB)失敗存儲的創建過程如果在創建存儲過程時這些對象不存在? (字段或表)原因創建存儲過程的失敗,如果引用考慮下面的存儲過程定義</p> <pre><code>create procedure myproc as select * from sometablethatdoesnotexist select somecolumnthatdoesnotexist from sometablethatdoesexist </code></pre> <p>不存在的表/列

+0

不是我知道的,但爲什麼你需要數據庫來防止這種情況?您是否讓用戶在您的服務器上鬆動以創建程序! Eeek! ;) – Tony

+0

我有10年的時間,如果我從我們的500個表中刪除一列,我想知道哪些存儲過程受到它的影響。確定哪些對象可靠地依靠列是令人驚訝的困難。 – Matthew

+0

你看過['sys.dm_sql_referenced_entities'](http://technet.microsoft.com/en-us/library/bb677185.aspx)嗎? –

回答

6

這是SQL Server的延遲名稱解析。

There is no way of turning it off。如果您引用現有表上不存在的列,它將會失敗。

+0

看起來好像連接項目鏈接已損壞,但我認爲這是暫時的。 –

+1

是的,很遺憾他們沒有sProcs的'SCHEMABINDING'選項。並不是說過度熱情的模式綁定是處理任何有趣的事情...... – RBarryYoung

+0

感謝@MartinSmith,您的聲明的第二部分對我來說足夠好(因爲我只是刪除了列)。如果時間允許,我會接受。 – Matthew

相關問題