我读了一些已回答的问题,但他们没有帮助我! 这是我的表:
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
答案 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
谷歌是你的朋友......