ms 触发器 及 主键生成方式问题
2011-11-09 21:33
232 查看
ms 触发器 及 主键生成方式问题
项目需要 写了个简单的ms数据库的--判断触发器是否存在如果存在就删除
IF EXISTS (SELECT name FROM sysobjects WHERE name='TRICARRIGE' AND type='TR') DROP TRIGGER TRICARRIGE go
设置对什么表创建触法器,触法时机:插入、更新、删除
CREATE TRIGGER [TRICARRIGE] ON [dbo].[T_table] AFTER INSERT,UPDATE,DELETE AS BEGIN
通过判断 inserted 表 和 deleted 表来缺点是插入操作 下面语句的功能是把插入的数据备份到一临时表里面
--插入 IF EXISTS (SELECT 1 FROM inserted) AND NOT EXISTS (SELECT 1 FROM deleted) BEGIN INSERT INTO T_DEST_BACKUP SELECT i.ID,'T_DEST_TABLE','A',i.GID FROM inserted i END
下面语句的功能是把更新的数据备份到一临时表里面 记录状态
--更新 IF EXISTS (SELECT 1 FROM inserted) AND EXISTS (SELECT 1 FROM deleted) BEGIN INSERT INTO T_DEST_BACKUP SELECT i.ID,'T_DEST_TABLE', CASE WHEN i.ACTIVATE = 1 THEN 'U' WHEN i.ACTIVATE = 0 THEN 'D' ELSE '' END,i.GID FROM inserted i END
下面语句的功能是把删除的数据备份到一临时表里面 记录状态
--删除 IF NOT EXISTS (SELECT 1 FROM inserted) AND EXISTS (SELECT 1 FROM deleted) BEGIN INSERT INTO T_DEST_BACKUP SELECT d.ID,'T_DEST_TABLE','D',d.GID FROM deleted d END SET NOCOUNT ON; END GO
在做触法器的时候发现一个问题 ibatis的主键生成方式有好几种
之前项目中的这种主键生成方式是不安全滴
<insert id="inserUser" parameterClass="userBean" > <![CDATA[ insert into T_TABLE(NAME) values (#name:NVARCHAR#)]]> <selectKey resultClass="int" keyProperty="id" > select @@IDENTITY as id </selectKey> </insert>
之后更改成 下面 就解决了主键不一致的问题
<insert id="inserUser" parameterClass="userBean" > <selectKey resultClass="int" keyProperty="id" > <![CDATA[ insert into T_TABLE(NAME) values (#name:NVARCHAR#) select SCOPE_IDENTITY() as id ]]> </selectKey> </insert>
看出其中的区别了没
相关文章推荐
- Hibernate主键生成方式Key Generator/插入问题
- SSH2里面遇到的问题——increment主键生成方式
- hibernate 多对多 中间表主键问题 及id生成方式
- hibernate 多对多 中间表主键问题 及id生成方式
- Oracle学习记录之使用自定义函数和触发器实现主键动态生成
- NHibernate主键生成方式 Key Generator_uuid.hex
- SS5.1_Hibernate_IdStrategyXML ~ SS5.5_Hibernate_IdStrategyXML 主键生成策略 XML映射文件的方式
- 诡异的问题:Excel做报表打印,莫名在根目录生成快捷方式的解决方法
- Hibernate的increment主键生成机制带来的问题(转)
- oracle中插入数据时自动生成主键的触发器
- SQL Server 2008 转换为 SQL 2005 数据库 脚本生成方式(解决主键、索引、标识等数据库约束丢失)
- Hibernate 主键生成方式
- hibernate联合主键生成机制(annotation方式)
- hibernate主键生成异常及运行速度慢问题
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)
- VS打包后生成快捷方式:目标指向错误、Icon图标分辨率有误问题解决方案
- 关于复合主键和反射生成两个实体类的问题
- nvm无法生成文件快捷方式问题
- hibernate的11种主键生成方式
- 剖析Hibernate主键生成几种常用方式