SqlServer觸發器--基礎語法以及轉換函式
阿新 • • 發佈:2018-11-13
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型別;