T-SQL 创建触发器 问题
发布网友
发布时间:2022-04-07 18:47
我来回答
共3个回答
懂视网
时间:2022-04-07 23:08
trigger trig_transInfo
on transInfo
for insert
as
declare @type char(4),@outMoney Money
declare @myCardID char(10),@balanceMoney
select @type=transType,@outMoney=transMoney,@myCardID=cardID
from inserted --从inserted表获取交易类型、教员金额等
if (@type=‘支取‘) --根据交易类型,减少或增加对应卡号的余额
update bank set currentMoney=currentMoney-@outMoney where cardID=myCardID
else
update bank set currentMoney=currentMoney+@outMoney where cardID=myCardID
...
触发器触发时:
(1)系统自动在内存中创建deleted表和inserted表
(2)只读,不允许修改;触发器执行完成后,自动删除
inserted表
(1)临时保存了插入或更新后的记录行
(2)可以从inserted表中检查插入的数据是否满足业务需求
(3)如果不满足,则向用户报告错误消息,并回滚插入操作
deleted表
(1)临时保存了删除或更新前的记录行
(2)可以从deleted表检查被删除的数据是否满足业务需求
(3)如果不满足,则向用户报告错误消息,并回滚删除操作
T-SQL---触发器
标签:
热心网友
时间:2022-04-07 20:16
create table tblStudent
(
StuId int not null,
StuName char(10) not null,
StuPwd varchar(20),
primary key(StuId)
)
go
create table tblCourse
(
StuId int not null,
CourseID int not null,
Score decimal(4,1),
primary key(StuId,CourseID)
)
go
create trigger tr_1
on tblCourse
for insert
as
begin
declare @StuId int
--inserted表是触发器用于暂存刚刚插入的这条数据所临时存放的表
select @StuId=StuId from inserted
if not exists(select * from tblStudent where StuId=@StuId)
insert into tblStudent(StuId,StuName) values(@StuId,'XG')
end
go
热心网友
时间:2022-04-07 21:34
/*这里,我试写一个了,参考一下,看能不能用了,*/
/*插入触发器*/
go
create trigger dEmployee_insert
on 部门信息
for insert
as
begin
update 部门信息
set 员工人数=员工人数+1
end
/* 册除的触发器*/
go
create trigger dEmployee_delete
on 部门信息
for delete
as
begin
update 部门信息
set 员工人数=员工人数-1
end
go
/*对于更新好人数不变就不用写了*/
描述创建触发器的规则和限制。
【答案】:创建触发器的规则和限制:用于创建触发器的T-SQL语句是CREATE TRIGGER,语法格式如下。CREATE TRIGGER trigger_name ON table_name [WITH ENCRYRTION]{FOR| AFTER|INSTEAD OF}{[INSERT][,][UPDATE][,][DELETE]} AS sp|_statement 参数说明如下。trigger_name:指定将要创建的触发器的名称。
ZESTRON表界面分析
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸等关键领域,还通过高精度仪器如固体表面Zeta电位分析仪等,确保数据准确可靠。这些分析手段对于优化产品配方、改进生产工艺、预防失效问题等具有重要意义,是我们不断提升产品性能与质量的重要工具。表面污染分析包括评估表面上存在的颗粒、残留物或物质。通过利用显微镜、光谱学和色谱法等技术,分析人员可以识别和表征污染物,以确定其成分和来源。这种分析在电子、制药和制造等各个行业中至关重要,以确保产品质量、性能和安全性。了解表面...
用T-SQL设计一个插入触发器,在触发器中设定条件,当没有满足该条件后,回...
如果你插入的数据不符合业务规则 ,这个时候就要回滚你的插入操作,业务规则在触发器中定义,也就是一个判断语句,回滚操作用ROLLBACK TRANSACTION 语句就可以,同时可以定义错误提示信息,下面这个列子你可以看看:CREATE TRIGGER employee_insupd ON employee FOR INSERT, UPDATE AS DECLARE @min_lvl tinyint,max...
SQL如何创建一个触发器
创建触发器用 CREATE TRIGGER CREATE TRIGGER 触发器名称 ON 表名 FOR INSERT、UPDATE 或 DELETE AS T-SQL 语句 注意:触发器名称是不加引号的。例子:create trigger jcsj_1 on 表名 for insert as begin update 表名 set 授课门数=授课门数+1 where 教师ID=(select 教师 ID from inserted)en...
SQL中创建触发器,要求插入的值不能小于表W中的值,下面这个写法无论插...
你这样做,触发器是你插入完成之后再触发的,也就是说你这条记录已经插进去了,如果你刚刚插入的是最大值,(select max(sage) from worker)=(select sage from inserted)如果你刚刚插入的不是最大值,(select max(sage) from worker)>(select sage from inserted)所以你的条件始终是成立的,所以都...
触发器 for insert ,T-sql代码如下
ALTER TRIGGER [dbo].[tg_STNgeneral_i] ON [dbo].[STNgeneral]FOR INSERT AS begin set nocount on If exists(Select 1 from inserted where Isnull(Marketcode,'') In (select distinct Marketcode From stngeneral where Isnull([state],'') <> '停用' And ISNULL(TNtypename,'')<> '...
SQL触发器的语法
sql_statement是触发器的条件和操作。触发器条件指定其它准则,以确定 DELETE、INSERT 或 UPDATE 语句是否导致执行触发器操作。当尝试 DELETE、INSERT 或 UPDATE 操作时,Transact-SQL语句中指定的触发器操作将生效。触发器可以包含任意数量和种类的 Transact-SQL 语句。触发器旨在根据数据修改语句检查或更改数据;它不应将...
t-sql创建在修改表时同时修改另外三张表
.可以多写几个update语句 2.在一张表上,建个触发器,修改一张表的同时,利用触发器关联的修改其他的表。三个表的关联修改,用触发器完全可以实现了。修改一个表的同时,触发其他两个表的修改。
SQl中触发器怎样执行的?
创建触发器 是特殊的存储过程,自动执行,一般不要有返回值。1、后触发器 (AFTER,FOR)先执行对应语句,后执行触发器中的语句。2、前触发器 并没有真正的执行触发语句(insert,update,delete),而是执行触发后的语句。3、行级触发器 (FOR EACH ROW) 在SQL server 中不存在。
怎样在SQL视图里面些写触发器(inserrt、update、delete)?基本语法是...
在vw1视图上建立update触发器:create trigger tr2 on vw1 instead of update as update 表A set Aid=a.Aid,Bid=a.Bid,c1=a.c1 from (select i.Aid,i.Bid,i.c1,i.c2,d.Aid as dAid,d.Bid as dBid,d.c1 as dc1,d.c2 as dc2 from inserted i,deleted d ) a where 表A.Aid=a...
那个触发器这么实现
Instead of 触发器可以取代激发它的操作来执行。它在Inserted表和Deleted表刚刚建立﹐其它任何操作还没有发生时被执行。因为Instead of 触发器在约束之前执行﹐所以它可以对约束进行一些预处理。五:使用T-SQL语句来创建触发器 基本语句如下:create trigger trigger_name on {table_name view_name} {for ...