昨天一直糾結於執行儲存過程異常的問題,後來單獨寫了個demo測試了一下,又到網上找了找資料,最終解決了這個問題。
當你在sql server上試圖更新乙個索引檢視引用的表時,你可能**到如下有錯誤
insert 失敗,因為下列 set 選項的設定不正確: 'arithabort'
在計算列或索引檢視上建立或操作索引時,set ansi_nulls 也必須為 on。如果 set ansi_nulls 為 off,計算列或索引檢視上帶索引的表上的 create、update、insert 和 delete 語句將失敗。sql server 將返回乙個錯誤,列出所有違反所需值的 set 選項。另外,在執行 select 語句時,如果 set ansi_nulls 為 off,則 sql server 將忽略計算列或檢視上的索引值並解析選擇,就好象表或檢視上沒有這樣的索引一樣.
解決方案:
1.你必須在tsql前set arithabort on,**如下
set arithabort on
goinsert into ta ..
2.在ado中,你可以這樣來寫(c#**)
myconnection.execute("set arithabort on");
如果以上你都覺得很麻煩或由於一些原因沒法更改,你可以嘗試修改sql server伺服器選項
3.exec sp_dboption 'yourdb','arithabort','true'
還可以4.alter database yourdb
set arithabort on
儲存過程涉及的異常
命名的系統異常 產生原因 access into null 未定義物件 case not found case中若未包含相應的when,並且沒有設定else時 collection is null 集合元素未初始化 curser alreday open 游標已經開啟 dup val no inde...
執行儲存過程
sql server 2012 其他版本 3 共 3 對本文的評價是有幫助 評價此主題 本主題介紹如何使用 sql server management studio 或 transact sql 在 sql server 2012 中執行儲存過程。有兩種不同方法執行儲存過程。第一種方法和最常見的方法...
儲存過程常見異常
access into null 未定義物件 case not found case 中若未包含相應的 when 並且沒有設定 else 時 collection is null 集合元素未初始化 curser already open 游標已經開啟 dup val on index 唯一索引對應的...