如何应用检查以防止表中的数据

时间:2011-11-19 07:00:04

标签: sql sql-server

我在SQL Server中有一个表。如何创建一个检查,以便同一个userId不能在表中插入超过3次。我希望在SQL Server中进行此检查,而不是在客户端代码中。

3 个答案:

答案 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)