sql中如何建立一个触发器,使出入和删除某条记录时,系统能自动进行相关的提示。急用!!!!谢谢了

要sql语句。。。... 要sql语句。。。 展开
 我来答
842085833
2008-12-08 · 超过11用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:0
展开全部
CREATE TRIGGER [触发器名字] ON 表名
FOR INSERT(插入)|DELETE(删除)|UPDATE(更新)
AS
declare @username varchar(50)//自定义@母表字段
select @username=UserName from inserted
insert 需要更新的表字段(类型) values( @username)
就这样,不懂在问我吧

下面例子:
CREATE TRIGGER [tgUser] ON dbo.Users
FOR DELETE
AS
declare @username varchar(50)
select @username=UserName from inserted
insert Score (ID) values( @username)
当我向users表删除username的时候同时在score表删除这个ID
百度网友ecc263c
2008-12-09 · TA获得超过624个赞
知道小有建树答主
回答量:478
采纳率:100%
帮助的人:378万
展开全部
--用INSERT语句创建触发器,当在“MR_Stu_XX”表中添加数据时,“MR_Stu_CJ”表也添加相应的数据。SQL语句如下:
USE MR_SQL--(表所在的数据库名称)
GO
CREATE TRIGGER TRI_StuXX_Insert ON dbo.MR_Stu_XX
FOR INSERT
AS
DECLARE @id Char(4),@name Char(10)
Select @id=学生编号,@name=学生姓名 from inserted
INSERT INTO MR_Stu_CJ (学生编号,学生姓名,语文,数学,英语) VALUES (@id,@name,0.0,0.0,0.0)
GO
--在表中添加数据时,将添加的数据存放在系统临时表“inserted”中。
--用DELETE语句创建触发器,当在“MR_Stu_XX”表中删除数据时,“MR_Stu_CJ”表也删除相应的数据。SQL语句如下:
USE MR_SQL
GO
CREATE TRIGGER TRI_StuXX_Delete ON [dbo].[MR_Stu_XX]
FOR DELETE
AS
DECLARE @id char(4),@name char(10)
select @id=学生编号,@name=学生姓名 from deleted
Delete MR_Stu_CJ where 学生编号=@id and 学生姓名=@name
GO
--在表中删除数据时,将删除的数据存放在系统临时表deleted中。
--用UPDATE语句创建触发器,当在“MR_Stu_XX”表中更新数据时,“MR_Stu_CJ”表也更新相应的数据。SQL语句如下:
USE MR_SQL
GO
CREATE TRIGGER TRI_StuXX_Uudate ON [dbo].[MR_Stu_XX]
FOR UPDATE
AS
DECLARE @id char(4),@name char(10)
select @id=学生编号 from deleted
select @name=学生姓名 from Inserted
UPDATE MR_Stu_CJ SET 学生姓名=@name WHERE 学生编号 = @id
GO
--在表中更新数据时,将更新前的数据存放在系统临时表“deleted”中,将更新后的数据存放在系统临时表“inserted”中。

参考资料: 明日系列编程词典--SQL Server 编程词典体验版

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dfaa21593
2008-12-09 · TA获得超过424个赞
知道答主
回答量:449
采纳率:0%
帮助的人:0
展开全部
A表中有列,NO1,NO2,NO3,
B表中有列,NO1,a,b,c,
if Exists(select name from sysobjects where type='tr' and name='Tr1')
drop trigger Tr1
go
create trigger Tr1 on B for insert
as begin
Declare @NO1 int,@b char
select @NO1=NO1 from inserted
select @b=b from inserted
if (@b='建立'or @b='恢复')
update A set NO2='在职' where NO1=@NO1
if (@b='中断'or @b='转移')
update A set NO2='停保' where NO1=@NO1
if (@b='退休')
update A set NO2='退休' where NO1=@NO1
end

主要实现的功能:

在增加B表的行是时,如果B中的b列为“建立”或“恢复”时,
更新A表中的NO2列为“在职”,
在增加B表的行是时,如果B中的b列为“中断”或‘转移’时,
更新A表中的NO2列为“停保”,
在增加B表的行是时,如果B中的b列为“退休”时,
更新A表中的NO2列为“退休”
你要想在改编数据的时候系统有提示,只需把表中多添加一列用来记录操作信息,当改变的时候,这里的值也改变,用户度去过之后再恢复
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
banwanye
2008-12-16
知道答主
回答量:29
采纳率:0%
帮助的人:10.8万
展开全部
create trigger 触发器名
on 表名
for insert|delete
as
print '插入或删除了该条记录'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式