У меня проблема описана следующим образом: У меня есть таблица с одним вместо триггера вставки:Как получить идентификатор таблицы, вставленный вместо триггера вставки?
create table TMessage (ID int identity(1,1), dscp varchar(50))
GO
Alter trigger tr_tmessage on tmessage
instead of insert
as
--Set NoCount On
insert into tmessage
select dscp from inserted
GO
Alter proc P1
As
--Set NoCount On
insert into tmessage
(dscp)
values('some data')
Select SCOPE_IDENTITY()
GO
Когда я выполнить Р1 он возвращает нуль для SCOPE_IDENTITY() вместо идентичности таблицы. Я даже попробовал предложение Output в инструкции insert в proc. но снова поле вывода таблицы идентификаторов, которое заполняется из вставленного в предложение Output, равно 0.
Любая помощь будет оценена по достоинству.
Вам необходимо ** показать нам триггеры! –
Вы пытались @@ IDENTITY вместо scope_identity()? –
Попробуйте использовать IDENT_CURRENT ('tablename') 'вместо scope_identity(). [прочитайте эту статью, чтобы узнать различия.] (http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of -record /) –