для триггера обновления - для вставки значений в таблицу истории - PullRequest
2 голосов
/ 08 марта 2011

Вот что у меня сейчас:

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)

куда мне положить это ???

Заранее спасибо!

1 Ответ

1 голос
/ 08 марта 2011

Вам нужно перечислить все столбцы

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

* столько столбцов, сколько существует в DELETED + столбец для getdate ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...