簡體   English   中英

SQL觸發器,檢查是否輸入了某個值

[英]SQL trigger, check if certain value was entered

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

現在檢查一下:

如果插入value1 = null,則將其更改為0

如何通過觸發器來做到這一點? 我用谷歌搜索了一些例子,我從來沒有做過觸發器,所以它相當令人困惑。

到目前為止只有這個:

CREATE TRIGGER testTrigger
ON myTable
AFTER INSERT, UPDATE, DELETE

您可以添加默認值 這就是新列的完成方式。 對於現有的,您應該添加約束。 檢查更新2

ALTER TABLE table_name 
ADD column1 int NOT NULL DEFAULT(0)

將具有默認值的列添加到SQL Server中的現有表

更新:

要設置默認值,首先應更新NULL值。

UPDATE table_name 
SET column1 = 0
WHERE column1 IS NULL

更新2:

嘗試添加約束

ALTER TABLE table_name 
ADD CONSTRAINT DF_column1 DEFAULT 0 FOR column1 

你可以在觸發器中寫這個:

UPDATE T SET value1 =0
FROM   table_name T
JOIN   INSERTED I
ON     T.<id>=I.<id>
WHERE  I.value1 is null

只能在觸發器中訪問的INSERTED表將存儲已插入的值。

INSERTED值上使用ISNULL

 SELECT ISNULL(INSERTED,0) FROM INSERTED

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM