表格中的重复数据

时间:2012-09-26 12:37:17

标签: sql insert

我读了一些已回答的问题,但他们没有帮助我! 这是我的表:

  CREATE TABLE [dbo].[t_status](
[student_id] [nvarchar](50) NOT NULL,
[les_id] [int] NOT NULL,
[year_id] [int] NOT NULL,
[status] [bit] NULL,
[Number_of_fail] [int] NULL,

如果student_id和les_id相等,我希望防止重复数据。 我该怎么做, 我没有太多关于触发器的信息,但我尝试了一个不起作用的信息!

        ALTER TRIGGER Trigger1
ON dbo.t_status
FOR INSERT
AS

declare @stu_id nvarchar(50)
declare @les_id int
Declare @Count int 

select @stu_id=student_id,@les_id = les_id From inserted


Select @Count=Count(student_id ) From t_status where les_id=@les_id and student_id=@stu_id
group by student_id

if @Count>1
delete From t_status where student_id =@stu_id

2 个答案:

答案 0 :(得分:1)

  

如果他们的student_id和les_id相等,我希望防止重复数据。怎么做呢,

这对于这两列上的UNIQUE KEY CONSTRAINT而言比使用触发器更简单。

ALTER TABLE t_status
ADD CONSTRAINT T_Status_Unique_StudentId_LesId UNIQUE (student_id, les_id)

触发器用于实施更复杂的完整性约束。

答案 1 :(得分:0)

制作复合/复合主键,有很多例子:

http://sqlzoo.net/howto/source/z.dir/tip241027/i02create.xml

谷歌是你的朋友......