0

这是表格:

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

我希望 SQL Server 自动将数据插入 Invoice 表,而我手动将数据插入 Order 表。

这是我的代码:

     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 回答