0

ここにテーブルがあります:

         Order [OrderId], [DateTimePlaced], [ProductId], [Quantity]
         Invoice [InvoiceId], [invoice_DateTime], [order_Id]

Order テーブルにデータを手動で挿入している間に、SQL Server が Invoice テーブルにデータを自動的に挿入するようにします。

これが私のコードです:

     create trigger invoice_Sync on Order
     after insert
     as
     begin

     insert into Invoice (invoice_DateTime,order_Id) select ID,Name,Address
     select getdate(),OrderId
     from inserted
     go

ただし、このクエリを実行した後、SQL Server から「INSERT ステートメントの選択リストには、挿入リストよりも多くの項目が含まれています」というエラーが表示されました。

私の状況は次のとおりです。請求書 ID は自動的にインクリメントされるように設定されているため、請求書 ID をこのトリガーに手動で入力するべきではないと思います。

助言がありますか?

4

1 に答える 1

2

そこに余分なSELECTものがあります:

 create trigger invoice_Sync on Order
 after insert
 as
 begin

 insert into Invoice (invoice_DateTime,order_Id) 
 --select ID,Name,Address, Why is this here?
 select getdate(),OrderId
 from inserted
 end
 go
于 2012-11-14T12:35:02.493 に答える