2KB项目,专业的源码交易网站 帮助 收藏 每日签到

SQL Server 的魔术表

  • 时间:2019-01-23 18:36 编辑:2KB 来源:2KB.COM 阅读:326
  • 扫一扫,手机访问
  • 分享
摘要:
SQL Server 英文原文:What is Magic Table in SQL Server?

介绍

这里,我将会解释什么是Magic Table,还有如何在 SQL Server 获取它.

背景

这种信息可以从 SqlServer Trigger 服务处获取到.

Magic Table

被“插入” 和 “删除” 的表被称为 SQL Server 的魔术表. 我们不能再数据库中看到这些表,但是我们从触发器”Trigger“处访问这些表 . 这些表由SQL Server内存自动创建并管理,来管理在一个数据库表中DML操作(插入,更新,删除)期间最近被插入、删除和更新的值.

逻辑表的使用

通常,逻辑表触发器用于如下目的:

  1. 识别错误的数据

  2. 检测数据对表的影响

插入逻辑表

当我们想表中插入数据是, 魔术表 “Inserted” 将会被创建并且持有当前插入的行. 我们可以使用“Trigger”来访问他们。

创建日志信息表

Create table LogMessage (Empid varchar(4),EmpName varchar(50),Message varchar(50))

what is magic table.

创建临时表

Create table Emp (Empid varchar(4),EmpName varchar(50))

what is magic table.

创建触发器显示当前出入行

Create Trigger LogDisplay
On Emp
for Insert
As
Select * from Inserted
Select * from Deleted
Go

what is magic table.

创建触发器

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

what is magic table.

向临时表中插入数据

Insert into Emp (EmpId,EmpName) values('S001','Ravindra')

两个触发器被触发

  1. LogDisplay

  2. LogInserted

what is magic table.

删除逻辑表

当我们从表中删除数据时,魔术表 “Deleted”将会被创建并且持有当前删除行。我们可以从“trigger”.访问他们。

创建触发器显示当前删除行

Create Trigger LogDisplayDel
On Emp
for Delete
As
Select * from Inserted
Select * from Deleted
Go

what is magic table.

创建触发器

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

what is magic table.

删除临时表中的行

Delete from Emp where Empid='s001'

what is magic table.

我们不能创建逻辑表或修改逻辑表中的数据。

牵引历史

select * from logTable

what is magic table.

注意:如果你使用Truncate命令,触发器不会被触发。

truncate table Emp

兴趣点

我们可以在SQL Server中使用触发器魔术表得到当前插入,更新和删除的行。

历史

参考 http://www.dotnet-shrikant.com/,获取更多信息。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部