当前位置:首页 » 编程语言 » sql触发器创建设置
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql触发器创建设置

发布时间: 2023-01-19 18:55:00

sql中创建触发器

大概思路如下(一些细节逻辑自己补充吧):

CREATE TRIGGER dnum_change
ON 学院信息表
FOR UPDATE
AS
declare @dnum varchar(100)
IF UPDATE (dnum)
begin
select @dnum = dnum from inserted
update 学生信息表 set dnum=@dnum where 查询条件
end
GO

❷ sql的触发器怎么做

这个不能用触发器,要用作业。

打开企业管理器,进入你服务器名下的“管理”,启动SQL Server代理。然后查看服务器属性,选中“自动启动SQL Server代理”。

接下来进入SQL Server代理下的“作业”,在右边点右键选“新建作业”。

在“常规”里,随便输入一个作业名,分类要选最后一项“数据库维护”。

在“步骤”里,点“新建步骤”,随便输入一个步骤名,数据库选成你的数据库,命令里输入你删除记录的语句,也可以通过“打开”来装载T-SQL脚本,弄好后记得分析一下,没有问题再继续。在“高级”里将“失败时的操作”改成“转到下一步”。

在“调度”里,点“新建调度”,随便输入一个调度名,点“更改”,“发生频率”选每天,“一次发生于”里设置17:00:00,然后点“确定”,再点“确定”,再点“确定”,配置就完成了。

❸ 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)
end

详见
http://tech.ddvip.com/2007-01/116783077317261.html
请采纳答案,支持我一下。

❹ SQL触发器编程

1、
在“Borrow”表中创建一个触发器ins_borrower_tr,当向“借阅”表中插入记录时,“借书日期”不能为空值,“还书日期”必须为空值。不满足上述条件则不允许向“借阅”表中插入记录,满足上述条件则允许插入,同时得到该书的应还日期,且“图书”表中对应的图书数量要减1,此操作对应读者的借书行为。
----“借书日期”不能为空值
可以通过
IS
NOT
NULL
来设置,不需要触发器;
----“还书日期”必须为空值
可以通过设置默认值实现,就是不管输入何值,最后都清空;
----“应还日期”是通过“借书日期”计算得出、“图书”表中对应的图书数量要减1
:两个功能通过触发器实现;
CREATE
TRIGGER
ins_borrower_tr

ON
Borrow

FOR
INSERT
AS
BEGIN

UPDATE
Borrow
SET
应还日期
=
借书日期
+ n
FROM
Borrow,Inserted
WHERE
Borrow.b_id,
=
Inserted.b_id

【其他的类似】
END
GO

2、在“Borrow”表中创建一个触发器del_borrower_tr,当删除“借阅”表中的某个记录时,若“还书日期”为空值,则不允许删除该记录。
----
这个可以通过触发器实现

3、在“Borrow”表中创建一个触发器update_return_tr,当更新“借阅”表中的某个记录时,只能更新“还书日期”字段,其他字段不能更新,请计算出是否过期并给出罚款信息(过期一天罚款0.1元)。如果更新,“book”表中对应的图书数量要加1。此操作对应读者的还书行为。
----只能更新“还书日期”字段,其他字段不能更新:这个不好实现的,因为如果程序中是可写的,就有点麻烦了!建议在程序中设置其他字段修改时为只读属性。
----其他科通过触发器实现。

❺ SQL中,如何创建一个有条件的触发器

以 delete 触发为例:

createtriggertri_delete
ona--将要进行更改的表名
fordelete--给表删除一条数据的时候触发
as
declare@aavarchar(10)
select@aa=afromdeleted
if@aa='a'--处理的条件
begin
raiserror('错误',16,8)
rollbacktran
end

触发器效果:删除表a数据,如果a列为‘a’,即阻止删除,提示‘错误’


❻ SQl中怎么样创建触发器

创建触发器:
Create
Trigger
名称

On
表名

For
类型

As

Sql语句

希望对你有帮助!

❼ 急!!!Sql创建触发器

创建2个触发器:
create TRIGGER [Trg_update] ON [dbo].[数据表a]
FOR UPDATE
AS

declare @oldname nvarchar(50)
declare @newname nvarchar(50)
declare @tlen int

select @newname=name from inserted
select @oldname=name from deleted

update 数据表b set name=@newname where name=@oldname

create TRIGGER [Trg_delete] ON [dbo].[数据表a]
FOR DELETE
AS

declare @oldname nvarchar(50)

select @oldname=name from deleted

DELETE 数据表b where name=@oldname

❽ SQL触发器怎么做

CREATE
TRIGGER
[km]
ON
员工表
AFTER
DELETE
AS
BEGIN
DELETE
FROM
工资表
WHERE
员工编号
IN
(SELECT
员工编号
FROM
deleted)
END
CREATE
TRIGGER
[gf]
ON
员工表
AFTER
UPDATE
AS
BEGIN
UPDATE
工资表
SET
部门编号=(SELECT
部门编号
FROM
inserted)
WHERE
员工编号=(SELECT
员工编号
FROM
inserted)
END

❾ SQL触发器怎么做

二楼的说的对,insert
into...select
语句是复制表a的数据到表b里,而且表2不能自定义,是由语句创建的,如果表b已经存在则会出错.
如果楼主要执行insert
into...select,首先要判断插入的表是否已经存在,如果存在要将其删除后在执行.
楼主如果你只是想把刚插入的数据的那3列在插入到另一个表里,完全没必要那样做,直接从inserted表(这个表只在insert触发器适用)里读就能读的到刚插入的内容了,读取出来后在用insert
语句插入到另一个表即可.

❿ SQL中设定一个触发器

可以创建如下类似触发器
create trigger depart_update on depart for update
as
begin
if update(deptno)
begin
update worker set deptno = b.deptno from inserted b where worker.col1 = b.col1

end

end