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これは、トリガーを使用するよりも、これら 2 つの列で行う方が簡単です。

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 に答える