触发表插入

时间:2012-11-14 12:28:57

标签: sql sql-server database

这是表格:

         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放入此触发器中。

有什么建议吗?

1 个答案:

答案 0 :(得分: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