SQL Server 的魔术表
时 间:2018-04-20 08:39:07
作 者:缪炜 ID:24010 城市:江阴
摘 要:介绍
这里,我将会解释什么是Magic Table,还有如何在 SQL Server 获取它.
正 文:
背景
这种信息可以从 SqlServer Trigger 服务处获取到.
Magic Table
被“插入” 和 “删除” 的表被称为 SQL Server 的魔术表. 我们不能再数据库中看到这些表,
但是我们从触发器”Trigger“处访问这些表 . 这些表由SQL Server内存自动创建并管理,
来管理在一个数据库表中DML操作(插入,更新,删除)期间最近被插入、删除和更新的值.
逻辑表的使用
通常,逻辑表触发器用于如下目的:
-
识别错误的数据
-
检测数据对表的影响
插入逻辑表
当我们想表中插入数据是, 魔术表 “Inserted” 将会被创建并且持有当前插入的行. 我们可以使用“Trigger”来访问他们。
创建日志信息表
Create table LogMessage (Empid varchar(4),EmpName varchar(50),Message varchar(50))
创建临时表
Create table Emp (Empid varchar(4),EmpName varchar(50))
创建触发器显示当前出入行
Create Trigger LogDisplay On Emp for Insert As Select * from Inserted Select * from Deleted Go
创建触发器
Create Trigger LogInserted On Emp for Insert As Declare @EmpId varchar(4) Declare @EmpName varchar(50) Select @EmpId=(Select EmpId from Inserted)--get data for Inserted Logic Table Select @EmpName=(Select Empname from Inserted) )--get data for Inserted Logic Table Insert into LogTable (EmpId,EmpName,Message) values(@EmpId,@EmpName,'Record Added') --Save Current row in LogTable Go
向临时表中插入数据
Insert into Emp (EmpId,EmpName) values('S001','Ravindra')
两个触发器被触发
-
LogDisplay
-
LogInserted
删除逻辑表
当我们从表中删除数据时,魔术表 “Deleted”将会被创建并且持有当前删除行。我们可以从“trigger”.访问他们。
创建触发器显示当前删除行
Create Trigger LogDisplayDel On Emp for Delete As Select * from Inserted Select * from Deleted Go
创建触发器
Create Trigger LogDelete On Emp for Delete As Declare @EmpId varchar(4) Declare @EmpName varchar(50) Select @EmpId=(Select EmpId from Deleted) Select @EmpName=(Select Empname from Deleted) Insert into LogTable (EmpId,EmpName,Message) values(@EmpId,@EmpName,'Record Deleted') Go
删除临时表中的行
Delete from Emp where Empid='s001'
我们不能创建逻辑表或修改逻辑表中的数据。
牵引历史
select * from logTable
注意:如果你使用Truncate命令,触发器不会被触发。
truncate table Emp
兴趣点
我们可以在SQL Server中使用触发器魔术表得到当前插入,更新和删除的行。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)