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

sqlserver查询触发器

发布时间: 2023-05-01 05:50:23

1. sqlServer里面的触发器语法及其用法

通常创建触发器以在不同表中的逻辑相关数据之间实施引用完整性或一致性。例子:
--
创建一个表(数据库设计的部分)
Create
Table
OrderLog
(
EditDate
smalldatetime
)
--
创建触发器,当OrderList表被UPDATE的时候,执行一段操作
CREATE
TRIGGER
tr_OrderList_Log
On
OrderList
AFTER
UPDATE
AS
Insert
Into
OrderLog(EditDate)
Values(getDate())
GO
--
修改表OrderList中的OutDate,使得触发器被执行
Update
OrderList
Set
OutDate
=
getDate()
--
察看触发器执行的后果
select
*
from
OrderLog

2. 如何查看sql server是否有触发器

1、通过可视化操作来管理和查看触发器
在Microsoft SQL Server Management Studio中,选中某一数据库槐昌的某一张表时,在“对象资源管理器详细”窗口中有“触发器”项。
通过“触发器”的右键菜单功能,我们可以新建触发器。如果原来的表中已经存在了触发器,通过双击“此明和触发器”项可以查看到具体的触发器,在此处可以执行 修改、删除等操作。
2、通过查询分析器来管理和查看触发器
1)查看表中的触发器类型:
sp_helptrigger:返回对当前数据库的指定表定义的 DML 触发器的类型。sp_helptrigger 不能用于 DDL 触发器。
示例: EXEC sp_helptrigger '表名'
2)查看触发器的有关信息:
sp_help:报告有关数据库对象(sys.sysobjects 兼容视图中列出的所有对象)、用户定义数据类型或某种数据类型的信息。
示例: EXEC sp_help '触发器名'
3)显示触发器的定义:
sp_helptext:显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。
示例: EXEC sp_helptext '触发器名'
4)查看当前库中所有的触发器:
查询脚本:SELECT * FROM Sysobjects WHERE xtype = 'TR'
5)查看当前库中所有的森盯触发器和与之相对应的表:
查询脚本:SELECT tb2.name AS tableName,tb1.name AS triggerName FROM Sysobjects tb1 JOIN Sysobjects tb2 ON tb1.parent_obj=tb2.id WHERE tb1.type='TR'

3. sql如何查看表触发器信息:就是我想要看这个表有几个触发器 还有触发器的名字 用 语句实现!!

呵呵,看到你的这个问题了,回答一下,希望能给你增加印象。
由于sqlserver
没有oracle中的行级触发器的概念,触发器如下:
create
trigger
[tc2]
on
[dbo].[teacher]
for
insert,update
as
if
(select
salary
from
inserted)<3000
update
teacher
set
salary=3000
and
tid=
(select
tid
from
inserted)
说明:当你插入数据的时候,这条数据是存放在【inserted】表中的,在这个表中把【teacher】表的主键得到(假如是【tid】)然后把这个主键信息加到where
条件上,这样就能起到只更新插入的那一条数据的效果了,否则会出现更新了全表的问题。
---
以上,希望对你有所帮助。

4. sql server知道触发器名如何查看里面代码

方法步骤如下:闭闭友

1、首先打开计算机,进入计算机的对象资源管理器界面,在界面内找到如图下的文件夹并右键单击打开。

5. SQLSERVER中触发器的触发类型有几种

SQL SERVER中触发器的触发类型有三种。

1、DML触发器,当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果对该表写了对应的DML触发器,那么该触发器自动执行。

2、DDL触发器,是Sql Server2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。比如在修改表,修改列,新增表,新增列等。它在数据库结构发生变化时执行,主要用它来记录数仔此梁据库的修改过程,以及限制程序员对数据库的修改。

3、登录触发器,登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。

(5)sqlserver查询触发器扩展阅读:

DML触发器的主要作用在于强制执行业 务规则,以及念运扩展Sql Server约束,默认值等。因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。

来自登录触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。如果身份验证失败,将不激发登录触发器。

触发器可在写入数据表前,强制检验或转换数据。触发器发生错误时,异动扒拍的结果会被撤销。可依照特定的情况,替换异动的指令 (INSTEAD OF)。

6. 使用SQLServer查询分析器创建存储过程和触发器

sql server 2000 第8章及第九章课后习题答案.

7. sqlserver 触发器 多表联查

CREATE TRIGGER [dbo].[表1_UPDATE_表2] --这里是触发器名称,最好一目了然的
ON [dbo].[表1]
FOR UPDATE,INSERT,DELETE --更新,插入,删除时触发(根据实际情况,可以只用一个)
AS
BEGIN
--下面是你的语句,我没有修改,只是调整了排版和大小写
UPDATE 表2
SET name=0,age=''
FROM 表2 INNER JOIN
(
SELECT DISTINCT ABS(id) AS billid,sale_z.ele_sordercode
FROM 表3
WHERE ele_sordercode<>''
) 表3
ON 表2.tid=表3.id LEFT JOIN
(
SELECT MAX(id) AS id, referbillid
FROM 表1
WHERE referbillid<>0
GROUP BY referbillid
) 表1 ON 表3.id=表1.id
WHERE name=1 AND refer.id IS NULL
END

8. sqlserver触发器如何知道当前处理什么类型的触发

INSERT/UPDATE/DELETE行为判断 的触发器例子代码

对于 FOR INSERT,UPDATE,DELETE 的
通过 查询 inserted 与 deleted 的记录 来判断

CREATE TRIGGER AfterAllTest
ON test_trigger_table
FOR INSERT,UPDATE,DELETE
AS
BEGIN
PRINT('AFTER ALL');
IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
BEGIN
PRINT('INSERTING');
END;
IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
BEGIN
PRINT('UPDATING');
END;
IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
BEGIN
PRINT('DELETING');
END;
END;
go

1> INSERT INTO test_trigger_table(id, name) VALUES (1, 'ABC');
2> UPDATE test_trigger_table SET name = 'XYZ' WHERE id = 1;
3> DELETE FROM test_trigger_table WHERE id = 1;
4> go
AFTER ALL
INSERTING

(1 行受影响)
AFTER ALL
UPDATING
AFTER ALL
DELETING
1>