sql儲存過程

2021-05-23 19:30:44 字數 1923 閱讀 7078

概念:sql server提供了一種方法,它可以將一些固定的操作集中起來由sql server資料庫伺服器來完成,以實現某個任務,這種方法就是儲存過程。

儲存過程是sql語句和可選控制流語句的預編譯集合,儲存過程在資料庫中可由應用程式通過乙個呼叫執行,而且允許使用者申明變數、有條件的執行以及其它強大的程式設計功能

(1)例項:

if exists (select name  from sysobjects where name='studentinfo' and type='p ')

drop procedure studentinfo--刪除儲存過程

go create procedure studentinfo--建立儲存過程

asselect * from student

goexecute studentinfo

--執行儲存過程

(2)例二:帶引數的儲存過程

use northwind

gocreate procedure insert_products_1(--建立一儲存過程

@supplierid_2 int ,--引數

@categoryid_3 int ,

@productname_1 nvarchar

)as insert into products

(productname,supplierid,categoryid)

values

(@productname_1,@supplierid_2,@categoryid_3)

goexec insert_products_1 2,2,2--執行儲存過程並傳入引數

select * from products where supplierid=2 and categoryid=2

(3)例三:使用返回引數

create procedure query_products

(@supplierid_1 int ,

@productname_2 nvarchar(40) output --使用返回引數)as

select @productname_2=productname from products

where supplierid=@supplierid_1

declare @product nvarchar(40)

exec query_products 7,@product output--執行儲存過程query_products,這裡的7是傳入的引數supplierid,@product output指productname

select '產品名'=@product

最後會顯示:

產品名outback lager

(4)檢視儲存過程 (通過系統表+儲存過程名)

sp_helptext query_products

sp_depends query_products

sp_help query_products

修改儲存過程

例:alter proc pr_searchempl

@state char(2)as

select * from table where state=@state

go(5)編譯儲存過程

在我們使用了一次儲存過程後,可能會因為某些原因,必須向表中新增加資料列或者為表新新增索引,從而改變資料庫的邏輯結構,這時需要重新編譯

1。在建立儲存過程時設定重新編譯

create procedure procedure_name

with recompile

as sql_statement

2。在執行儲存過程時設定重新編譯

execute procedure_name

with recompile

3。通過使用系統 儲存過程設定重編譯

exec

sp_recompile object

SQL儲存過程

什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql語句而已啊?microsoft公司為什麼還要新增...

SQL儲存過程

儲存過程 1.返回值 create proc example4 as begin declare 返回值 int select 返回值 sum 庫存量 from 產品 return 返回值 endgo 接受這個返回值必須要用變數來接收,如 declare 接收值 int exec 接收值 examp...

SQL儲存過程

在大型資料庫系統中,儲存過程和觸發器具有很重要的作用。無論是儲存過程還是觸發器,都是sql 語句和流程控制語句的集合。就本質而言,觸發器也是一種儲存過程。儲存過程在運算時生成執行方式,所以,以後對其再執行時其執行速度很快。sql server 2000 不僅提供了使用者自定義儲存過程的功能,而且也提...