這裏是我的配置:SQL Server Management Studio(或SQL Server)是否評估* all *表達式?
- 我有,我用它來更新我的數據庫重新運行的批處理腳本。
- 內部的批處理腳本,我有一些代碼說以下內容:
- 如果表「A」不存在,然後創建表「A」和插入行到它。
- 稍後在該批處理腳本中,我在該表上創建了一個架構綁定的索引視圖。
有時,當我重新運行該腳本,這是表創建後,SQL Server Management Studio中評估「插入行」的代碼,這是由「如果此表沒有按保護'T存在' 代碼,併產生以下錯誤:
消息1934年,級別16,狀態1,行15 INSERT失敗,因爲下列SET選項的設置不正確: 'CONCAT_NULL_YIELDS_NULL,ANSI_WARNINGS,ANSI_PADDING,ARITHABORT'。驗證SET選項是否適用於計算列和/或過濾索引和/或查詢通知和/或XML數據類型方法和/或空間索引操作的索引視圖和/或索引。
- 請注意:如果有人在真空中試用此INSERT語句,我會完全期望 SSMS產生此錯誤。
- 但是不是當它受到條件塊的保護時。
我的問題:
Does the SSMS compiler evaluate all expressions, regardless of whether they will actually be executed?
如果使用SQL'請Server'來看看我的回答對[失敗,因爲不正確ARITHABORT設置](http://stackoverflow.com/questions/35140159/failed-because-incorrect-arithabort-setting/35750269# 35750269)頁面。希望這可以幫助... – 2016-03-02 14:43:00