程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 用SET命令捕獲多行錯誤

用SET命令捕獲多行錯誤

編輯:關於SqlServer

象單行一樣,解決多行的T-SQL返回的結果是一個好習慣。在T-SQL裡使用局部變量得到返回的結果記錄集,如果用SELECT子句就會掩飾潛在的問題。


如果代碼只希望得到一個值,SELECT子句只會分配一個值,盡管實際上可能返回多個值。如果這種分配用SET 命令會發生錯誤。但是,當你希望得到單個值的記錄時,用SET命令會使T-SQL代碼更加魯棒。

下面的腳本演示了這種情況:

CREATE TABLE SetTest
(Pkey INT NOT NULL
CONSTRAINT pk_SetTest primary key,
Name VARCHAR(30) NOT NULL
CONSTRAINT df_col1 DEFAULT 1
)
GO
INSERT SetTest VALUES (1,'Mary Johnson')
INSERT SetTest VALUES (2,'John Highland')
INSERT SetTest VALUES (3,'Ashly Robertson')
INSERT SetTest VALUES (4,'Mary Johnson')
GO
DECLARE @myVar INT
SELECT @myVar = Pkey FROM SetTest WHERE Name = 'Mary Johnson'
GO
DECLARE @myVar INT -- ERROR WILL BE GENERATED
SET @myVar = ( SELECT Pkey FROM SetTest WHERE Name = 'Mary Johnson' )
GO
DROP TABLE SetTest
GO

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved