0
我有一個觸發器。當我刪除我的表中的某些東西時,我想在其他名爲Archive的表中創建一行,並將其刪除。一切正常。問題是當我在同一時間刪除多個行。它僅存儲表格存檔中的第一行。我想創建一個循環,但我如何分開他們在子查詢來選擇每一行。我如何解決這個問題?多個刪除SQL服務器中的單獨行
ALTER TRIGGER [dbo].[trigArhiva]
ON [dbo].[student]
AFTER DELETE
AS
SET NOCOUNT ON;
BEGIN
declare @nume varchar(45);
declare @anStudiu int;
declare @prenume varchar(45);
declare @CNP char(13);
declare @grupa int;
declare @idFacult int;
declare @rowss int;
declare @i int;
select @rowss = count(*) from DELETED;
set @i = 1;
while (@i <= @rowss)
begin
select @nume = nume from DELETED;
select @anStudiu = anStudiu from DELETED;
select @prenume = prenume from DELETED;
select @CNP = CNP from DELETED;
select @grupa = idGrupa from DELETED;
select @idFacult = idFacult from DELETED;
insert into arhivaStud(nume, prenume, CNP, grupa, idFacult, anStudiu) values (@nume, @prenume, @CNP, @grupa, @idFacult, @anStudiu);
set @i = @i+1;
end
END
顯示觸發代碼..我相信你的代碼中有這樣的東西。 'Select @ var1 = col .. from Deleted'並使用該變量插入我剛剛編輯的存檔表 –
。謝謝 – StringDotZ
您需要批量執行此操作。你可以插入到新表中,你從'deleted'中選擇的所有東西。 –