关于sql server:SQL触发器,检查是否输入了某个值

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