您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

限制表以限制要存储的记录数

限制表以限制要存储的记录数

没有约束可以强制执行该规则,但是可以使用如下所示的触发器来做到这一点:

CREATE TRIGGER Images_not_more_than_five_per_add
ON Images FOR INSERT
AS
DECLARE @RowCount int
SET @RowCount = @@ROWCOUNT
SET NOCOUNT ON
IF @RowCount = 1
BEGIN
    IF (SELECT COUNT(*) FROM Images WHERE Images.addid = (SELECT addid FROM inserted)) > 5
    BEGIN
        RAISERROR('No more than five images per add are allowed', 16, -1)
        ROLLBACK
        RETURN
    END
END
ELSE
BEGIN
    IF EXISTS (
        SELECT *
        FROM
            Images
            INNER JOIN (
                SELECT DISTINCT addid FROM inserted
            ) I ON Images.addid = I.addid
        GROUP BY
            Images.addid
        HAVING COUNT(*) > 5
    )
    BEGIN
        RAISERROR('No more than five images per add are allowed', 16, -1)
        ROLLBACK
        RETURN  
    END
END
其他 2022/1/1 18:42:30 有454人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶