在多个删除SQL server中分隔行
我有扳机。当我删除表中的某些内容时,我希望在另一个名为Archive的表中用我删除的行创建一行。一切正常。问题是当我同时删除多行时。它只存储表存档中的第一行。我考虑创建一个循环,但是如何在子查询中将它们分开以选择每一行。我该如何解决这个问题在多个删除SQL server中分隔行,sql,sql-server,Sql,Sql Server,我有扳机。当我删除表中的某些内容时,我希望在另一个名为Archive的表中用我删除的行创建一行。一切正常。问题是当我同时删除多行时。它只存储表存档中的第一行。我考虑创建一个循环,但是如何在子查询中将它们分开以选择每一行。我该如何解决这个问题 ALTER TRIGGER [dbo].[trigArhiva] ON [dbo].[student] AFTER DELETE AS SET NOCOUNT ON; BEGIN declare @nume varchar(45);
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
ALTER触发器[dbo].[trigArhiva]
关于[dbo].[student]
删除后
作为
不计数;
开始
声明@nume varchar(45);
声明@anStudiu int;
声明@prenume varchar(45);
声明@CNP char(13);
声明@grupa int;
声明@idFacult int;
声明@rowss int;
声明@i int;
从已删除列表中选择@rowss=count(*);
设置@i=1;
while(@i我认为您应该使用类似的内容(deleted是在调用触发器的操作期间删除的所有记录的“内部”表示):
我认为您应该使用类似的方式(deleted是在调用触发器的操作期间删除的所有记录的“内部”表示):
显示触发代码..确保代码中有类似的内容。从已删除的
中选择@var1=col..并使用该变量插入到我刚刚编辑的存档表中。谢谢,您需要批量执行此操作。您可以将从已删除的
中选择的所有内容插入到新表中。您无法为变量赋值类似的可删除项。Deleted就像一个表,如果在一条语句中删除多条记录,它可以保存多条记录。相反,请插入arhiva(字段)从删除中选择字段显示触发代码..我确信您的代码中有类似的内容。select@var1=col..from Deleted
并使用该变量插入到我刚刚编辑的存档表中。谢谢,您需要批量执行此操作。您可以将从删除的中选择的所有内容插入到新表中。您不能像这样为变量赋值。Deleted就像一个表,如果您在一条语句中删除了多条记录,它可以保存多条记录。相反,请在arhiva(字段)中插入从Deleted中选择的字段
ALTER TRIGGER [dbo].[trigArhiva]
ON [dbo].[student]
AFTER DELETE
AS
SET NOCOUNT ON;
BEGIN
INSERT INTO arhivaStud(nume, prenume, CNP, grupa, idFacult, anStudiu)
SELECT nume, prenume, CNP, idgrupa, idFacult, anStudiu FROM deleted
END