SQL Server 2008在插入之前触发

时间:2013-03-18 20:01:24

标签: sql-server-2008 triggers

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

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

根据我的理解,我虽然有触发但不知道如何写这个。

这是我到目前为止写的;

CREATE TRIGGER tr_Group
ON Table_Group
for INSERT
AS  
????

请告诉我。

1 个答案:

答案 0 :(得分:15)

我建议您使用check constraints

ALTER TABLE dbo.Table_Group ADD CONSTRAINT CK_Group
    CHECK (minimumVal < maximumVal)

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

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