1

と という 2 つのテーブルがPrac1ありprac2ます。Prac1トリガーがあります。挿入が発生するとprac1、同じエントリが入ります(トリガーコード)。上位3つのIDを選択し、その値(他の列)で再度挿入することprac2で、1つのSPを作成しました。ただし、3ではなく1行のみが追加されます.クエリは次のとおりです。prac1prac1

Insert name,lname into prac1 where id in(select top3 id from prac1).

トリガーを削除すると、sp が実行され、3 つのエントリがテーブルに追加されます。この状況を処理するにはどうすればよいですか?

prac1:ID、名前、Lname
prac2:名前、Lname

4

1 に答える 1

0

クエリが機能していることを確認しますか?コメントですでに述べたように、構文は無効です。詳細については、MSDNを参照してください。正しい構文は次のとおりです。

INSERT [INTO] 
      table_name  [ ( column_list ) ] 
      { VALUES 
      ( { DEFAULT | NULL | expression } [ ,...n] ) 
| derived_table
       }

したがって、挿入クエリは次のようになります。

INSERT INTO prac1(name, lname) 
SELECT TOP 3 name, lname
  FROM prac1

トリガーコードを投稿すると、挿入された行がトリガーをトリガーする最初の行になります。それにもかかわらず、インサートはそれを再びトリガーする可能性があります。したがって、おそらくそれを無効にしてから再度有効にする必要があります。

于 2012-08-02T09:48:17.263 に答える