---------------------
sqlserver-觸發器
-------------
觸發器中的臨時表:
inserted
存放進行insert和update 操作後的資料
deleted
存放進行delete 和update操作前的資料
--建立觸發器
create trigger user_onupdate
on st_user
for update
asdeclare @msg nvarchar(50)
--@msg記錄修改情況
select @msg = n '姓名從「' + deleted. name + n '」修改為「' + inserted. name + '」' from inserted,deleted
--插入日誌表
insert into [log](msg) values (@msg)
--刪除觸發器
drop trigger user_onupdate
-----------------
儲存過程語法
----------------------
--建立帶output引數的儲存過程
create procedure pr_sum
@a int ,
@b int ,
@ sum int output
asbegin
set @ sum =@a+@b
end--建立return返回值儲存過程
create procedure pr_sum2
@a int ,
@b int
asbegin
return @a+@b
end--執行儲存過程獲取output型返回值
declare @mysum int
execute pr_sum 1,2,@mysum output
print @mysum
--執行儲存過程獲取return型返回值
declare @mysum2 int
execute @mysum2= pr_sum2 1,2
print @mysum2---
-------------------
自定義函式
-----------------------
--函式的分類:
1)標量值函式
2)錶值函式
a:內聯錶值函式
b:多語句錶值函式
3)系統函式
--新建標量值函式
create function func_sum1
(@a int ,
@b int
)returns int
asbegin
return @a+@b
end--新建內聯錶值函式
create function func_usertab_1
(@myid int
)returns table
asreturn ( select * from st_user where id<@myid)
--新建多語句錶值函式
create function func_usertab_2
(@myid int
)returns @t table
([id] [ int ] not null ,
[oid] [ int ] not null ,
[login] [nvarchar](50) not null ,
[rtx] [nvarchar](4) not null ,
[ name ] [nvarchar](5) not null ,
[ password ] [nvarchar]( max ) null ,
[state] [nvarchar](8) not null)as
begin
insert into @t select * from st_user where id<@myid
return
end--呼叫錶值函式
select * from dbo.func_usertab_1(15)
--呼叫標量值函式
declare @s int
set @s=dbo.func_sum1(100,50)
print @s
--刪除標量值函式
drop function func_sum1
-------------------
自定義函式與儲存過程的區別
--------------------
--自定義函式:
1. 可以返回表變數
2. 限制頗多,包括
不能使用output引數;
不能用臨時表;
函式內部的操作不能影響到外部環境;
不能通過select返回結果集;
不能update,delete,資料庫表;
3. 必須return 乙個標量值或表變數
自定義函式一般用在復用度高,功能簡單單一,爭對性強的地方。
--儲存過程
1. 不能返回表變數
2. 限制少,可以執行對資料庫表的操作,可以返回資料集
3. 可以return乙個標量值,也可以省略return
儲存過程一般用在實現複雜的功能,資料操縱方面。
SQL Server 儲存過程與觸發器
定義 是一組為了完成特點功能的sql語句集,經編譯後儲存在資料中。包含 程式流 邏輯 對資料庫的查詢 建立儲存過程 create procedure 名稱 assql statement n 在可程式設計性中可以找到 exec 名稱 呼叫儲存過程 recompile encryption 加密 定義...
sqlserver觸發器複習
create table a a1 int,a2 int create table b b1 int,b2 int insert into a values 1,0 insert into b values 1,0 create trigger tri update a2 a on a for up...
SQL server 之 觸發器
今天對觸發器研究了一下,之前的學習感覺挺朦朧的,今天鼓搗了一天,算是有了一點點了解,把學習的體會記錄了下來。常見的觸發器 觸發器的作用 自動化操作,減少了手動操作以及出錯的機率 現實工作中用的比較少,因為想讓他執行起來效率高很難 一 dml觸發器 insert delete update 不支援se...