SQL Server 2008在插入之前触发

New*_*per 3 triggers sql-server-2008

我很新SQL,很抱歉这是非常基本的知识.我的问题如下.

我有一个名为Group的表,minimumVal并且maximumVal是两列.minimumVal总是应该少于maximumVal.我想在将新记录插入表之前检查这一点.如果此条件失败,则不应将数据插入数据库.

所以根据我的理解,我虽然有一个触发器,但不知道如何写这个.

这就是我到目前为止所写的内容;

CREATE TRIGGER tr_Group
ON Table_Group
for INSERT
AS  
????
Run Code Online (Sandbox Code Playgroud)

请建议我.

Lam*_*mak 15

我建议您使用检查约束:

ALTER TABLE dbo.Table_Group ADD CONSTRAINT CK_Group
    CHECK (minimumVal < maximumVal)
Run Code Online (Sandbox Code Playgroud)

如果您仍想使用触发器,则需要INSTEAD OF触发器:

CREATE TRIGGER tr_Group ON Table_Group
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON
    INSERT INTO dbo.Table_Group
    SELECT *
    FROM INSERTED
    WHERE minimumVal < maximumVal
END
Run Code Online (Sandbox Code Playgroud)