触发以阻止记录插入超过10次

时间:2013-07-08 14:30:18

标签: sql sql-server sql-server-2005 sql-server-2008-r2

我正在使用sql server 2008,我的情况是我要检查列值,不应该插入相同的值超过10次

我的桌子是

uID       devs 
---------------
 1        SLS 
 2        SRS
 3        SLS

我想对开发人员进行检查,相同的值应该只记录10次,而不是更多。请指导我

2 个答案:

答案 0 :(得分:0)

while (select count(*) from dev where devs='sls')<10
insert into dev values (0,'SLS')

答案 1 :(得分:0)

您可以在表格上添加检查约束

CREATE FUNCTION CountByDevs()
    RETURNS INT
    AS
    BEGIN
        DECLARE @Count INT

        SELECT @Count = COUNT(*) FROM MyTable group by devs having COUNT(1)>10
        RETURN @Count
    END


    ALTER TABLE MyTable add CONSTRAINT Chk_MaxDevsAllowed
        CHECK (dbo.CountByDevs() <= 10)