Нямате достъп до полетата TEXT, NTEXT или IMAGE от INSERTED или DELETED. Въпреки това можете да получите достъп до тях от основната таблица, като се присъедините с INSERTED. Това работи само за INSERT и UPDATE, защото в DELETE основният ред вече не съществува.
За да постигнете това, от което се нуждаете, в друг тригер копирайте първичния ключ и колоните TEXT, NTEXT и IMAGE в странична таблица.
Например
create table C1(
accountNo int identity primary key,
someColumn nvarchar(10),
someNtext ntext
)
create table C1_side(
accountNo int primary key,
someNtext ntext
)
create trigger trgC1_IU on C1 AFTER INSERT, UPDATE
as
BEGIN
-- Ensure side row exists
insert C1_side(accountNo, someNtext)
select accountNo from INSERTEd
where not exists (select 1 from C1_side where C1_side.accountNo = inserted.accountNo)
-- Copy NTEXT value to side row
update C1_side
set someNtext = c1.someNtext
from C1_side inner join C1 on C1_side.accountNo = C1.accountNo
inner join INSERTED on INSERTED.accountNo = C1.accountNo
-- Could improve by checking if the column was updated for efficiency
END
Сега във вашия тригер DELETE можете да присъедините DELETED към C1_side, за да прочетете предишната стойност на колоната ntext. Обърнете внимание, че ще трябва да попълните начални стойности за вашата странична таблица за редове, които вече съществуват в C1.