Sql server MicrosoftSQL:如何在触发器内创建表并插入值

Sql server MicrosoftSQL:如何在触发器内创建表并插入值,sql-server,triggers,Sql Server,Triggers,我试图在一个具有以下特征的表上创建一个触发器 无论何时在Project_Ypalliloi表名上使用and UPDATE,我都希望为已删除的_Ypalliloi创建另一个表 我想将删除的行插入到新表中 这是我的桌子: create table Project_Ypalliloi ( arithmos_taut int primary key not null, onoma varchar(20)not null, eponymo varchar(20)not null, imerominia_p

我试图在一个具有以下特征的表上创建一个触发器

无论何时在Project_Ypalliloi表名上使用and UPDATE,我都希望为已删除的_Ypalliloi创建另一个表 我想将删除的行插入到新表中 这是我的桌子:

create table Project_Ypalliloi
(
arithmos_taut int primary key not null,
onoma varchar(20)not null,
eponymo varchar(20)not null,
imerominia_proslipsis date not null,
imerominia_gennisis date not null,
misthos float

)
这是我的触发器:

CREATE TRIGGER deleteTrigger ON Project_Ypalliloi FOR DELETE AS --errorline1
DECLARE @arithmos_taut int
DECLARE @onoma varchar(20)
DECLARE @eponymo varchar(20)
DECLARE @imerominia_proslipsis date
DECLARE @imerominia_gennisis date
DECLARE @misthos float
DECLARE @getnamesCursor CURSOR 
SET @getnamesCursor = CURSOR FOR 
SELECT arithmos_taut,onoma,eponymo,imerominia_proslipsis,imerominia_gennisis,misthos FROM Project_Ypalliloi --where How can i get the deleted line?(under what condition?)
OPEN @getnamesCursor 
FETCH NEXT FROM @getnamesCursor INTO @arithmos_taut,@onoma,@eponymo,@imerominia_proslipsis,@imerominia_gennisis,@misthos 
WHILE @@FETCH_STATUS = 0 
BEGIN 
INSERT INTO deleted_Ypalliloi Values '('+rtrim(@arithmos_taut) + ',' + rtrim(@onoma) + ',' + rtrim(@eponymo) + ' ,' + rtrim(@imerominia_proslipsis) + ',' + rtrim(@imerominia_gennisis) + ', ' + rtrim(@misthos)+')' 
--FETCH NEXT FROM @getnamesCursor INTO @c_name,@c_surname 
END --errorline 2
CLOSE @getnamesCursor 
DEALLOCATE @getnamesCursor 
我的触发器代码在查询中,我得到一个错误:错误行1和错误行2的Syndax不正确

非常感谢您的帮助

使用已删除的

CREATE TRIGGER deleteTrigger ON Project_Ypalliloi AFTER DELETE 
AS
BEGIN
DECLARE @arithmos_taut int;
DECLARE @onoma varchar(20);
DECLARE @eponymo varchar(20);
DECLARE @imerominia_proslipsis date;
DECLARE @imerominia_gennisis date;
DECLARE @misthos float;
SELECT @arithmos_taut = arithmos_taut, 
@onoma = onoma, @eponymo = eponymo, 
@imerominia_proslipsis = imerominia_proslipsis,
@imerominia_gennisis = imerominia_gennisis, 
@misthos = misthos FROM DELETED;
INSERT INTO deleted_Ypalliloi 
VALUES(@arithmos_taut, @onoma, @eponymo, @imerominia_proslipsis, @imerominia_gennisis, @misthos);
END
对于两个或多个已删除行

INSERT INTO deleted_Ypalliloi SELECT * FROM DELETED;

如果删除的表中的行数超过1行,这将不起作用。也许我可以尝试检查是否有超过1行的行。你认为这会起作用吗?我是否必须首先创建一个名为DELETED_Ypalliloi的表?如果表项目中只有1行,这实际上不起作用。另外,删除的表是什么@misthos=已删除的misthos;