Sqlserver Insert 触发器语句实现表的实时备份

SqlServer
127
Sqlserver
触发器
实时备份
数据库变动

Sqlserver Insert 触发器语句实现表的实时备份

概念: 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

触发器和存储过程的区别: 触发器与存储过程的区别是运行方式的不同,触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行而存储过程需要用户,应用程序或者触发器来显示地调用并执行。


关于触发器这块 以往开发经历因为用上的机会不多,多数用不到少数可能用到的因为赶工也被自己用其他的方式替代了,所以也就没认真去关注过这一块的用法。 近期负责的项目需要实现一个功能,在不改变现有主体业务的情况实现新业务分支,数据源结构和主业务一模一样的,可以认为是同一套数据两个地方分开用但又要保持两边一致,且不能改变现有的业务结构,数据来源也是一对一的无法通过部署新的程序来实现。思来想去最终采用触发器的方式 实现副本数据库的形式copy到副本表 执行其他业务,在保证了数据实时性的同时也缓解主表的数据查询压力。

以下是实现 两张相同的表A和B 向A表写入数据的同时也往B插入同样的数据 的触发器sqlserver的写法

--创建一个名为InsertDataTigger的Insert触发器 
create trigger InsertDataTigger
on dbo.A
for insert
as 
---往B表插入当前新增的数据
  insert into dbo.B(字段1,字段2,字段3,字段4)
  select 字段1,字段2,字段3,字段4 from Inserted
end

当同一台服务器可以实现跨库操作

Microsoft SQL Server 2008 R2  不同版本永久安装激活序列号
SqlServer2008r2日志文件导致磁盘爆满的解决办法
C# 如何实现windows服务器判断是否已经安装了sqlserver数据库
SqlServer数据库服务手动操作重启后长时间显示(正在恢复)
C#使用SqlBulkCopy向Sqlserver数据库大批量更新插入数据数据库的例子
SqlServer 如何生成32位 GUID
Sqlserver数据库中SqlDataAdapter.Fill的简单用法
SQLServer成功与服务器建立连接,但是在登录前的握手期间发生错误
SqlDependency 实现监听Sqlserver数据库表有变化时发起通知
记一次商品库存数及库龄的SQLSERVER数据库统计查询
Sqlserver(MSSQL) 数据库如何限制最大可使用内存及占用
暂无相关内容...
暂无相关内容...
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删