SqlServer创建触发器不同于常见的MySQL,略有步骤,工作中遇到,小做记录
复制代码
1
2
3
4
5
6
7ALTER TABLE [表名] ADD [create_time] datetime null default current_timestamp ALTER TABLE [表名] ADD [update_time] datetime null default current_timestamp -- 建两字段,[create_time]用来记录数据第一次insert的时间,[update_time]记录每次update的时间
建两字段,[create_time]用来记录数据第一次insert的时间,[update_time]记录每次update的时间
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17USE [库名] GO --创建触发器 CREATE TRIGGER [自己命名的触发器] ON [表名] after update as BEGIN set nocount on; update [表名] set [update_time]=SYSDATETIME() where id in (select distinct id from inserted) END GO --启动触发器 ALTER TABLE [表名] ENABLE TRIGGER [自己命名的触发器]
获取当前时间,尽量不要用sysdatetime(),用current_timestamp
顺便记录一下MySQL的方法,省得每次都再找了
复制代码
1
2
3
4ALTER TABLE <表名> ADD COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `<create_time前一个字段>`, ADD COLUMN `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `create_time`;
再记录下SqlServer中将datetime类型的数据转换为yyyyMMddHHmmss格式的方法
复制代码
1
2update [表名] set [转化后的字段] = REPLACE(CONVERT(varchar(100), [转化前的字段], 112)+CONVERT(varchar(100), [转化前的字段], 8),':','')
例如:现有字段[addtime]是datetime类型,想将其转成yyyyMMddHHmmss格式
新建字段[attachment],输入以下语句
复制代码
1
2update [表名] set [attachment] = REPLACE(CONVERT(varchar(100), [addtime], 112)+CONVERT(varchar(100), [addtime], 8),':','')
最后
以上就是满意巨人最近收集整理的关于SqlServer创建触发器,实现数据增删改的记录登记的全部内容,更多相关SqlServer创建触发器,实现数据增删改内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复