SQL trigger, check if certain value was entered
1 2 | INSERT INTO TABLE_NAME (column1, column2, column3,...) VALUES (value1, value2, value3,...) |
现在检查什么:
如果插入的值1=空,则将其更改为0
如何通过触发器完成?我在谷歌上搜索了一些例子,但我从来没有做过触发操作,所以这很令人困惑。
到目前为止,只有这个:
1 2 3 | CREATE TRIGGER testTrigger ON myTable AFTER INSERT, UPDATE, DELETE |
号
可以添加默认值。这就是为新专栏所做的工作。对于现有的约束,您应该添加约束。检查更新2
1 2 | ALTER TABLE TABLE_NAME ADD column1 INT NOT NULL DEFAULT(0) |
将具有默认值的列添加到SQL Server中的现有表中
更新:
要设置默认值,首先应该更新空值。
1 2 3 | UPDATE TABLE_NAME SET column1 = 0 WHERE column1 IS NULL |
号
更新2:
尝试添加约束
1 2 | ALTER TABLE TABLE_NAME ADD CONSTRAINT DF_column1 DEFAULT 0 FOR column1 |
你可以在触发器中写下:
1 2 3 4 5 | UPDATE T SET value1 =0 FROM TABLE_NAME T JOIN INSERTED I ON T.<id>=I.<id> WHERE I.value1 IS NULL |
。
只能在触发器内访问的插入表将存储已插入的值。
对插入的值使用isNull
1 | SELECT ISNULL(INSERTED,0) FROM INSERTED |