我是靠谱客的博主 外向战斗机,最近开发中收集的这篇文章主要介绍SqlServer触发器--基础语法以及转换函数以及跨库触发器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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触发器--基础语法以及转换函数以及跨库触发器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部