概述
1、sqlserver触发器语法
CREATE TRIGGER trigger_name[触发器名称]
ON table_name[表名]
instead of/for before [insert、update、delete]
AS
BEGIN
....触发器执行体....
END
GO
注释:[]中的为中文解释;
DML触发器分为两种:
前置触发:instead of
后置触发:for before
insert :后置插入触发
update :后置修改触发
delete :后置删除触发
写法:for [insert、update、delete];before可省略不写
2、定义变量语法
1、declare @变量名 数据类型 数据长度;
实例: declare @num int(100);
2、变量赋值
SET 变量名 = value;(给一个变量赋值)
实例:SET @num = 99;
select @age = age from client where name = @name ; (查询客户张三的年龄赋值给@age变量;可给多个变量赋值)
3、if else 的使用
1、单条件 : if update(A) ; --如果A字段发生改变,执行某某操作
2、两条件 :if update(A){
执行操作
}ELSE {
执行操作
};
3、多条件: if update(A) or delete(A) ; --多条件中需要指明触发器
4、积累的小技巧
1、在sql中 <> 表示不等于;
示例:if (@a <> 4) ; --如果变量a不等于4
2、在sql的拼接需要注意两点:
(1)、@val = ‘ 中文 ‘+ @val_1+’ ’ ;--如果拼接的过程中@val_1的数据类型不是字符串需要用转换函数转成字符串类型;
(2)、在字符串拼接在,变量一定不能为空,如果为空,会导致被拼接的这个字符串为空;
解决方法: isnull(@val_1,' 啦啦') ; --如果@val_1为空,设置他默认值为“啦啦 ”。
5、转换函数
convert(需要转换的类型,被转换的表达式); --表达式可以是变量,可以是表达式
1、convert(nvarchar,@val_1) ; --把@val_1变量转为nvarchar类型
2、convert(nvarchar,convert(decimal,@val_1)); --把@val_1先转为decimal类型,再转为nvarchar类型;
6、示例
DROP TRIGGER
IF
EXISTS nhdc_cloud_xwh_house_online.trigger_uptShowName;
CREATE TRIGGER trigger_uptShowName BEFORE UPDATE ON nhdc_cloud_xwh_house_online.xwh_project
FOR EACH ROW
BEGIN
SET @old_project_code = old.project_code;
IF
old.show_name <> new.show_name THEN
UPDATE nhdc_cloud_customer.xwh_team_group_staff
SET project_name = new.show_name
WHERE
project_code = @old_project_code;
UPDATE nhdc_cloud_customer.o_d_broker
SET project_name = new.show_name
WHERE
project_code = @old_project_code;
END IF;
END;
最后
以上就是外向战斗机为你收集整理的SqlServer触发器--基础语法以及转换函数以及跨库触发器的全部内容,希望文章能够帮你解决SqlServer触发器--基础语法以及转换函数以及跨库触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复