Mam prosty wyzwalacz o takie coś:
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'dodanieHistoriiDoFirmware' AND type = 'TR')
DROP TRIGGER [dbo].[dodanieHistoriiDoFirmware]
GO
CREATE TRIGGER dodanieHistoriiDoFirmware ON Firmware
AFTER UPDATE
AS
DECLARE @IDFirmware int ,
@Nazwa nvarchar(50),
@Stan smallint,
@Zalecenia nvarchar(max) ,
@Powiadomienie bit ,
@Startowe bit,
@Oprogramowanie varbinary(max),
@Os int,
@DataModyfikacji datetime;
select @IDFirmware = i.ID, @Nazwa = i.Nazwa, @Stan = i.Stan ,
@Zalecenia = i.Zalecenia, @Powiadomienie = i.Powiadomienie , @Startowe = i.Startowe,
@Oprogramowanie = i.Oprogramowanie, @Os = i.Os, @DataModyfikacji = i.DataModyfikacji from inserted i;
insert into Firmware_Historia(IDFirmware,Nazwa,Stan,Zalecenia,Powiadomienie,Startowe,Oprogramowanie,Os,DataModyfikacji)
values(@IDFirmware,@Nazwa,@Stan,@Zalecenia,@Powiadomienie,@Startowe,@Oprogramowanie,@Os,@DataModyfikacji);
GO
Moim zadaniem jest przekopiowanie danych z jednej tabeli do tabeli przechowującej dane historyczne. Problematyczne jest przeniesienie kolumny z oprogramowaniem, która zapisana została jako image w tabeli pierwotnej. Przy wykonaniu triggera wyskakuje mi błąd, który mówi, że nie mogę wykorzystać kolumny z typem image. Zadeklarowałem zmienną lokalną @oprogramowanie jako varbinary(max). Jednakże problem występuje przy dalszej instrukcji SELECT. Czy jest jakaś możliwość konwersji typów bez potrzeby zmiany typu kolumny w tabeli ?