Sql 表中存在重复数据
我读了一些已回答的问题,但它们对我没有帮助! 这是我的桌子:Sql 表中存在重复数据,sql,insert,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, 如果学生id和学生id相等,我希望防止重复数据。 我该怎么做, 我没有太多关于触发器的信息,
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,
如果学生id和学生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
制作复合/复合主键,有很多示例: 谷歌是你的朋友 如果学生id和学生id相等,我希望防止重复数据。怎么办, 在这两列上使用
唯一键约束
比使用触发器简单得多
ALTER TABLE t_status
ADD CONSTRAINT T_Status_Unique_StudentId_LesId UNIQUE (student_id, les_id)
触发器用于强制执行更复杂的完整性约束。在学生id和学生id上复合主键?