sql触发器删除
⑴ 如何用sql语句删除 SQL Server 中的触发器
-- 查看数据库已有触发器
use yourdatabase
go
select * from sysobjects where xtype='TR'
-- 查看单个触发器
exec sp_helptext '触发器名'
--删除触发器:
基本语句如下:
drop trigger trigger_name
⑵ sql触发器删除记录,cycleTime表,当表数据超过500条时,使用触发器把表中的最久的数据删除
触发器中的 deleted表中就是保存删除的行。取出插入另一个表即可。
例:
CREATE TRIGGER tri_del
ON 表名 FOR DELETE
AS
declare @id int
declare @name varchar(20)
select @id = id, @name = name from deleted --取删除的数据
insert into 表名2 values(@id = id,@name) --插入另一个表
⑶ SQL如何创建删除的触发器
CREATE TRIGGER A表_DEL
ON A表FOR DELETE
AS
--SET NOCOUNT ON
DELETE E
FROM A表 E
INNER JOIN deleted D ON E.主键ID = D.主键ID
⑷ SQL 触发器 删除与更新
--修改就是alter,但是你这触发器写的不对
ALTER TRIGGER BBakTrigger ON dbo.BBak
FOR UPDATE, DELETE
AS
begin
if exists (select * from deleted) and not exists (select * from inserted)
begin
insert into BBak select * from deleted
end
else if exists (select * from deleted) and exists (select * from inserted)
begin
insert into BBak select * from deleted
end
end
⑸ SQL触发器同步删除数据要怎么写
使用delete 触发器格式:
CREATE trigger tri_update
on tablename
for delete
as
begin
--sql code
end
例:
CREATE trigger tri_update
on tablename1 --触发的表名
for delete
as
begin
declare @del_id varchar(40)
select @del_id = id from deleted --tablename1 中删除的数据保存在 deleted 中
delete tablename2 where id = @del_id --同步删除tablename2中数据
end
⑹ sql触发器,怎样把一个表中删除的记录请入另一个表中
如下:
CREATE
TRIGGER
del_kh
ON
dbo.卡信息表
AFTER
DELETE
AS
insert
into
作废卡信息表(kh,xm,xb,kmc,sjhm,sysycs,fxrq,dqrq)
select
kh,xm,xb,kmc,sjhm,sysycs,fxrq,dqrq
from
deleted
====
触发器激活时,会把删除的记录放在deleted临时表里~
这个表只能读取,结构是直接负责进行删除操作的表的~
所以直接把这个数据导出到您需要的表里就可以了!
⑺ sql触发器,怎样把一个表中删除的记录请入另一个表中
触发器中的 deleted表中就是保存删除的行。取出插入另一个表即可。
例:
CREATETRIGGERtri_del
ON表名FORDELETE
AS
declare@idint
declare@namevarchar(20)
select@id=id,@name=namefromdeleted--取删除的数据
insertinto表名2values(@id=id,@name)--插入另一个表
⑻ SQL求助 插入删除修改的触发器代码编写
---创建测试表:
Create Table MyTest(
id int identity(1,1) not null primary key,
[name] varchar(100) null
)
--创建触发器:
CREATE TRIGGER trigtest--创建触发器trigtest
ON mytest--在表mytest上建
for INSERT,DELETE,UPDATE--为插入,删除,修改
AS
BEGIN
declare @a int,
@b int,
@id int,
@name varchar(100),
@oldId int,--原ID号
@oldName varchar(100)--原来的name
set @a=0
set @b=0
if exists(select * from inserted)--如果存在插入新的数据则设置@a=1
begin
set @a=1
end
if exists(select * from deleted)--如果存在删除数据则设置@b=1
begin
set @b=1
end
if (@a=1)and(@b=0)--新增:当插入表inserted存在数据而删除表deleted不存数据时,为新增操作。
begin
select @id=id,@name=name from inserted
print '增加了ID号为【'+cast(@id as varchar(5))+'】Name为【'+@name+'】的数据!'
end
if (@a=1)and(@b=1)--修改:当插入表insertedt和删除表deleted都存在数据时,为修改操作。
begin
select @id=id,@name=name from inserted
select @id=id,@oldname=name from deleted
print '修改了ID号为【'+cast(@id as varchar(5))+'】的数据Name由【'+@oldname+'】变为【'+@name+'】'
end
if (@a=0)and(@b=1)--删除:当插入表inserted不存在数据而删除表deleted存在数据时,为删除操作。
begin
select @id=id,@name=name from deleted
print '删除了ID号为【'+cast(@id as varchar(5))+'】Name为【'+@name+'】的数据!'
end
END
⑼ SQL触发器同步删除数据要怎么写
使用delete
触发器格式:
CREATE
trigger
tri_update
on
tablename
for
delete
as
begin
--sql
code
end
例:
CREATE
trigger
tri_update
on
tablename1
--触发的表名
for
delete
as
begin
declare
@del_id
varchar(40)
select
@del_id
=
id
from
deleted
--tablename1
中删除的数据保存在
deleted
中
delete
tablename2
where
id
=
@del_id
--同步删除tablename2中数据
end