国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

淺談在SQL Server2005中進行錯誤捕捉

2024-08-31 00:46:32
字體:
來源:轉載
供稿:網友

任何程序都可能出現錯誤,在SQL Server中執行Transact-SQL也不例外。如果在Transact-SQL中發生了錯誤,一般有兩種捕捉錯誤的方法,一種是在客戶端代碼(如C#、Delphi等)中使用類似try...catch的語句進行捕捉;另外一種就是在Transact-SQL中利用Transact-SQL本身提供的錯誤捕捉機制進行捕捉。如果是因為Transact-SQL語句的執行而產生的錯誤,如鍵值沖突,使用第一種和第二種方法都可以捕捉,但是如果是邏輯錯誤,使用客戶端代碼進行捕捉就不太方便。因此,本文就如何使用Transact-SQL進行錯誤捕捉進行了討論。

一、非致命錯誤(non-fatal error)的捕捉

通過執行Transact-SQL而產生的錯誤可分為兩種:致命錯誤(fatal error)和非致命錯誤(non-fatal error)。在Transact-SQL中只可以捕捉非致命錯誤(如鍵值沖突),而無法捕捉致命錯誤(如語法錯誤)。在Transact-SQL中可以通過系統變量@@ERROR判斷最近執行的一條語句是否成功執行。如果發生了錯誤,@@Error的值大于0,否則值為0。下面舉一個例子說明@@ERROR的使用。

假設有一個表table1,在這個表中有兩個字段f1,f2。其中f1是主鍵。

以下為引用的內容:

insert INTO table1 VALUES(1, ’aa’)

insert INTO table1 VALUES(1, ’bb’) --這條語句將產生一個錯誤

IF @@ERROR > 0

PRINT ’鍵值沖突’

當執行第二條語句時發生鍵值沖突錯誤,@@ERROR被賦為錯誤號2627,因此輸出結果顯示’鍵值沖突’。使用@@ERROR系統變量時需要注意,@@ERROR只記錄最近一次執行的Transact-SQL語句所發生的錯誤,如果最近一次執行的Transact-SQL沒有發生錯誤,@@ERROR的值為0。因此,只能在被捕捉的那條Transact-SQL語句后使用@@ERROR。

共3頁上一頁123下一頁
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 若羌县| 百色市| 南涧| 金山区| 鄂伦春自治旗| 张家川| 凤翔县| 凤庆县| 阿拉善左旗| 宁化县| 镇巴县| 兰考县| 阿城市| 高阳县| 庆云县| 胶南市| 和田县| 安阳县| 玉环县| 盘山县| 德州市| 麻城市| 九寨沟县| 巴林右旗| 兰西县| 葵青区| 镇坪县| 白水县| 丹寨县| 泽州县| 上栗县| 苏尼特左旗| 江口县| 钟祥市| 西乌珠穆沁旗| 咸丰县| 宜州市| 会理县| 北安市| 安达市| 准格尔旗|