0

我阅读了一些已回答的问题,但它们对我没有帮助!这是我的桌子:

  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
4

2 回答 2

1

如果他们的 student_id 和 les_id 相等,我想防止重复数据。怎么办,

UNIQUE KEY CONSTRAINT与使用触发器相比,在这两列上执行此操作非常简单。

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

触发器用于执行更复杂的完整性约束。

于 2012-09-26T12:43:56.580 回答
0

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

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

谷歌是你的朋友...

于 2012-09-26T12:42:45.800 回答