SQLServer中触发器与自定义函数的定义与调用

1. 触发器

1.1. 定义

1
2
3
4
5
6
7
8
create trigger trigger_name on table_name for manipulation
as
begin
declare @variable1 data_type1, @variable2 data_type2
select @variable1=variable1,@variable2=variable2 from inserted
select @Variable1=variable1,@variable2=variable2 from deleted
%条件语句或循环语句(过程化SQL)
end

说明:

以上trigger_nametable_namemanipulationvariabledata_type按实际需要替换。其中manipulation包括insertdeleteupdate

注意对inserteddeleted这两张表的使用。

1.2. 调用

由DBMS自动调用。

2. 自定义函数

2.1. 定义

1
2
3
4
5
create function function_name(arg1,arg2) returns table
as
return(
%select子句
)

说明:以上function_namearg(可以为空)按实际需要替换。因自定义函数最常用的返回类型就是table,这里就以此为例。

2.2. 调用

2.1中自定义函数返回的是一张表,因此,通过select子句即可完成调用

1
select * from function_name()