ข้อสังเกตจากด้านบน
CREATE TABLE [dbo].[table_1](
[username] [varchar](50) NOT NULL,
[password] [varchar](50) NULL,
CONSTRAINT [PK_table_1_1] PRIMARY KEY CLUSTERED
(
[username] ASC
)
) ON [PRIMARY]
----------------------------------------
declare @intErrorCode int
----------------------------------------
INSERT INTO [dbname].[dbo].[table_1]
([username]
,[password])
VALUES
('1'
,'a')
if @@error <> 0
begin
print 'Have error 1.'
end
else
print 'Not have error 1.'
----------------------------------------
INSERT INTO [dbname].[dbo].[table_1]
([username]
,[password])
VALUES
('2'
,'b')
SELECT @intErrorCode = @@ERROR
if @intErrorCode <> 0
begin
print 'Have error 2.'
end
else
print 'Not have error 2.'
----------------------------------------
INSERT INTO [dbname].[dbo].[table_1]
([username]
,[password])
VALUES
('2'
,'b')
SET @intErrorCode = @@ERROR
if @intErrorCode <> 0
begin
print 'Have error 3.'
end
else
print 'Not have error 3.'
----------------------------------------
- @@errror น่าจะเป็นตัวแปรของระบบ สำหรับเก็บค่าของ statement ว่าผลการทำงานเป็นอย่างไร
- เราสามารถกำหนดค่าจาก @@errror ให้ตัวแปรเราโดย set @param = @@errror หรือ select @param = @@error ได้ทั้งสอง แต่ส่วนมาใช้ select นะ อันนี้ไม่แน่ใจ
- เราต้องวาง การตรวจสอบ error ของ statement ทุกตัวสมมุติถ้ามี insert statement 3 อัน แล้วถ้า 1 และ 3 insert ได้แต่ 2 ไม่สามารถ insert ได้ ถ้าเราวาง if @error = 0 ไว้ต่อท้าย statement 3 แค่อันเดียวจะทำให้ @@error จะเป็น 0 นะ ถึง statement 2 จะ error แต่ 3 ไม่ error หว่า ระวังตรงนี้อ่ะ
- สงสัยการทำ ต้องใช้ try catch ประกอบซะแหละ ตรวจสอบทุก statement คงไม่ใหว
Related
No comments:
Post a Comment