我在SQL Server中有一个表。如何创建一个检查,以便同一个userId不能在表中插入超过3次。我希望在SQL Server中进行此检查,而不是在客户端代码中。
答案 0 :(得分:1)
我要么:
创建一个函数,检查用户是否在表中存在3次以上,并在CHECK CONSTRAINT
内使用该函数。有关CHECK约束的信息可以在MSDN
或
创建INSTEAD OF TRIGGER
并在将数据输入表格之前进行检查。 MSDN参考。
答案 1 :(得分:0)
在存储过程中轻松控制
CREATE PROCEDURE spAddUser
@UserId int,
@Name varchar(50),
@MoreData varchar(10)
AS
BEGIN
DECLARE @Count1 int
SELECT @Count1 = COUNT(UserID) FROM tblUsers
IF @Count1 < 3 GOTO AddUser
RETURN 0
:AddUser
INSERT INTO tblUsers
(UserId,Name,MoreDate)
VALUES
(@UserId,@Name,@MoreDate)
RETURN 0
END
答案 2 :(得分:0)
这也应该有效: Insert Into TableName(UserId,Field2)值(Value1,Value2)其中UserId IN(从TableName中选择不同的UserId,具有Count(UserID)&lt; 3)