SQL Sever語言 儲存過程及觸發器

2022-05-04 05:21:07 字數 1457 閱讀 5975

儲存過程:就像函式一樣的

會儲存在資料庫中--》可程式設計性--》儲存過程

建立儲存過程: 儲存在資料庫表,可程式設計性,儲存過程

create proc jiafa

--需要的引數

@a int,

@b int

as--儲存過程內容

declare @c int;

set @c =@a + @b; 

return @c;

go相當於乙個函式

public int 函式名 (變數1,變數2)

儲存之後可以直接呼叫,

執行儲存過程

exec 儲存名

有返回值時

declare @f int;

exec @f= jiafa 3,5;

print @f;

--例:在car表中查詢對應種類的車輛數目

--儲存過程

creat proc chaxun

@n varchar(20)

asdeclare @num int 

select @num=coount(*) from car where name like '%'+@n+'%'

go--呼叫方法

declare @m int

exec @m=chaxun '奧迪'

print @m

觸發器:

是乙個特殊的儲存過程;

通過增刪改查的動作來觸發執行,沒有引數,沒有返回值;

儲存位置在要執行的表的下拉列表中

不去觸發不執行,滿足條件之後執行,相當於html中的事件

create trigger 觸發器名稱

insert_student --命名規範 動作_要執行的表名 為了以後更容易的了解觸發器要使用的情況

on student --針對於那張表

for insert --針對於那個動作來觸發

--onclick= "show()"

as觸發器要執行的** 

go1、for的意思是在動作執行之後觸發

2、instead of delete 的意思是刪除之前的引發,可以理解為替代,寫了這個之後寫的**就沒有用了,就被觸發器的**覆蓋了

刪除存在外來鍵的表的內容時,需要先刪除外來鍵連線的表的內容

create trigger delete_info

on inf0

instead of delete

asdeclare @c varchar(20)

select @c =code from deleted

delete from work where infocode=@c

delete from family where infocode=@c

delete from info where code=@c

goinstead of的使用比for的頻繁

面試過程中問的比較多,但實際工作是用的比較少

sqlsever儲存過程

create procedure dbo procregisterflow pageindex int,pagesize int,sqllogiccode int output,sqllogicmsg varchar 1000 output,sqlerrorcode int output,sqler...

sql sever 儲存過程總結及實驗

定義 儲存過程是資料庫中的乙個功能,是一組為了完成特定功能 可以接收和返回使用者引數的t sql語句預編譯集合,經過編譯後儲存在資料庫中,以乙個名稱儲存並作為乙個單元處理。儲存過程儲存在資料庫內,可由應用程式通過乙個呼叫執行,而且允許使用者宣告變數 帶引數執行以及其他強大的程式設計功能。儲存過程在第...

SQL Sever 儲存過程的建立和執行

無參的儲存過程建立 create procedure pro test1 asbegin select from student where stuid 1 end 查詢儲存過程 exec pro test1 declare return value int exec return value db...