排名
1
文章
860
粉丝
112
评论
163
.net core自定义项目模板,创建自己的模板项目,使用命令行创建模板项目
尘叶心繁 : 可以可以讲真的我都想弄个模板
net core webapi post传递参数
庸人 :
确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 : 已精
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 :
疯狂反射
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

触发器
什么是触发器:触发器是个特殊的存储过程,不是由用户触发,是系统根据事件来触发。对表操作比如
添加,删除,修改。 也就是在进行DML操作的时候可以触发我们自己写的逻辑
触发器的作用:数据同步(数据同步更新,同步修改), 做一些数据自定义约束.....,可以根据具体业务来实现
触发时间: 操作之前和操作之后,比如添加之前执行,添加之后执行,更新之前,更新之后......
操作之前: instead of [事件]
操作之后: after [事件] / for [事件]
触发器的语法:create trigger 触发器名称
on 表 [时间] [事件]
as
begin
........触发后具体要实现的功能...........
end
实现一个用户表添加之后执行的触发器:
create trigger tri_insert
on userinfo after insert
as
begin
end
下面是实际的一点例子:
- --实现一个用户表添加之后执行的触发器:
- alter trigger tri_insert
- on UserInfo after insert
- as
- begin
- print('更新之后执行')
- end
-
- --实现一个用户表修改之前执行的触发器:
- create trigger tri_beforeupdate
- on userinfo instead of update
- as
- begin
- print('更新之前执行')
- end
-
- --添加之前 (实现一个自定义限制,添加的时候班级必须是.net一班)
- go
- alter trigger tri_beforeinsert
- on userinfo after insert
- as
- begin
- --print('查看刚刚新添加的数据库内容')
-
- --inserted是触发器中的临时表,用户记录刚刚新添加的内容
- --定义一个变量用于接收用户添加用户的内容
- --declare @tempname nvarchar(64)
- --select @tempname =username from inserted
- --insert UserInfo(username) values(@tempname)
-
- declare @tempclass nvarchar(64)
- --从临时表中取出来uclass
- select @tempclass = uclass from inserted
- if(@tempclass = '.NET一班')
- insert UserInfo select username,number,uclass from inserted
- else
- begin
- print('无法添加')
- --报错
- --raiserror('该表只能添加.net一班',16,1)
- end
-
- end
- --数据同步,比如有两张表,一张主表,一张附表
-
-
- alter trigger tri_beforeinsert
- on userinfo after insert
- as
- begin
- --print('查看刚刚新添加的数据库内容')
-
- --inserted是触发器中的临时表,用户记录刚刚新添加的内容
- --定义一个变量用于接收用户添加用户的内容
- --declare @tempname nvarchar(64)
- --select @tempname =username from inserted
- --insert UserInfo(username) values(@tempname)
-
- -- 添加附表
- insert UserInfo2 select username,number,uclass from inserted
-
- end
-
- alter trigger tri_update
- on userinfo for update
- as
- begin
- --select * from inserted
- declare @id int
- declare @username nvarchar(64)
- select @id = id,@username = username from inserted
- --同步修改附表
- update UserInfo2 set username = @username where id = @id
- end
-
-
-
- --create trigger tri_beforeupdate
- --on userinfo instead of update
- --as
- --begin
- -- declare @id int
- -- declare @username nvarchar(64)
- -- select @id = id,@username = username from inserted
- -- if(@id>5)
- -- begin
- -- update UserInfo set username = @username where id = @id
- -- end
- -- else
- -- begin
- -- raiserror('id1-5无法被修改',16,1)
- -- end
- --end
-
-
- alter trigger tri_beforeupdate
- on userinfo instead of update
- as
- begin
- --要先直接使用inserted点出来就需要加一个from inserted 不然是会报错的
- update UserInfo set username = inserted.username from inserted where UserInfo.id =inserted.id
- end
-
-
-
- select * from UserInfo
-
- select * from UserInfo2
-
-
-
-
- insert UserInfo values('fff','NS001','.NET一班')
- update UserInfo set username = '吕小布ss' where id =1
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价