資料庫儲存過程 觸發器 函式的使用

2022-08-25 14:24:20 字數 1566 閱讀 7326

·建立儲存過程

create procedure 儲存過程名稱

use test

gocreate procedure user_insert @uid char(20),@uname varchar(20),@upwd  char(20),@num int

asbegin

while @num>10

insert into user

values(@uid,@uname,@upwd)

set @num=@num+1

set @uid=@uid+1

end執行儲存過程

exec user_insert 『002』,』jc』,』123456』,0   --迴圈執行插入10條記錄

強化判斷user表的userid是否已存在,不存在則加入一條新記錄

user test

gocreate procedure user_in @uid char(20) ,@uname char(20), @upwd char(20)

asbegin

/*判斷user表的userid為011是否存在,如果不存在則插入新的記錄*/

if not exists (select userid from user where userid=』011』)

insert into user values(@uid,@uname,@upwd)

end執行儲存過程

exec user_in 『011』,』tang』,』123456』

·建立觸發器

create trigger 觸發器名稱 on 表名

create trigger delete_user_info on user

after delete

asbegin

delete from user_info where userid=(selete userid from deleted)

end解析:當刪除user表記錄時,就會觸發delete_user_info觸發器,並刪除user_info中的對應的userid的記錄。

(1)       on關鍵字後面指定觸發器執行的表,after 關鍵字用於說明觸發器在指定操作都成功執行後觸發,delete關鍵字表示刪除操作後啟用觸發器

(2)       deleted表是系統臨時表,用於儲存已從觸發器表中刪除的記錄,當觸發器的乙個delete觸發器時,被刪除的記錄存放到deleted表中

·建立函式

create function  函式名稱(@引數名 型別)

use test

gocreate function l_name(@uname char(20))

returns int

asbegin

declare @sum1

select  @sum1=count(*) from user where username=@uname

return @sum1

end執行函式

declare @sum int

exec @sum=dbo.l_name(「tang」)

select @sum as 「使用者名為tang的使用者數」

資料庫儲存過程與觸發器

資料庫儲存過程 儲存過程 stored procedure 是在大型 資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。優點 重複使用。儲存過程可以重複使用,從而可以減...

資料庫儲存過程和觸發器

建立儲存過程 create procedure titles sum title varchar 40 sum money output asselect sum sum price from titles where title like title godeclare totalcost mon...

資料庫觸發器和儲存過程

觸發器 trigger 是由事件來觸發某個操作。這些事件包括insert語句 update語句和delete語句。當資料庫系統執行這些事件時,會啟用促發其執行相應的操作。create trigger 觸發器名 before after 觸發事件 on 表名 for each row 執行語句 每插入...