Sql 对于更新触发器-将值插入历史记录表

Sql 对于更新触发器-将值插入历史记录表,sql,triggers,Sql,Triggers,这就是我现在拥有的: GO /****** Object: Trigger [dbo].[trg_SourceHistory] Script Date: 03/08/2011 14:38:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[trg_SourceHistory] ON [dbo].[tblSource] for UPDATE AS begin try INSER

这就是我现在拥有的:

GO
/****** Object:  Trigger [dbo].[trg_SourceHistory]    Script Date: 03/08/2011 14:38:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trg_SourceHistory] 
ON [dbo].[tblSource]
for UPDATE
AS 
begin try
INSERT INTO tblHistorySource
select *, getdate()
from [DELETED]
end try
begin catch
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage;
RAISERROR('Error in Source Hisotry Trigger' ,16,1)
ROLLBACK TRAN
END CATCH
但我一直收到以下错误:插入错误:提供的值的列名或数量与表定义不匹配

我在想也许写下触发器中的所有字段是个好主意,以确保每个符号都匹配,但我似乎不知道这样做的格式

insert into tblHistorySource (value1, value2) values (value1, value2)
我该把这个放在哪里


提前谢谢你

您需要列出所有列

....
begin try
INSERT INTO tblHistorySource (value1, value2, somedatecolumn)  -- all the columns*
select value1, value2, getdate()   -- al
from [DELETED]
end try
....

*getdate()的DELETED+列中存在的列数相同。

谢谢!我忘记了括号,以前无法使用:)