**:
什麼是儲存過程呢?
儲存過程就是作為可執行物件存放在資料庫中的乙個或多個sql命令。
通俗來講:儲存過程其實就是能完成一定操作的一組sql語句。
那為什麼要用儲存過程呢?
1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般sql語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。
2.當對資料庫進行複雜操作時,可將此複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。
3.儲存過程可以重複使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某些使用者才具有對指定儲存過程的使用權
那儲存過程怎麼用呢?
以下通過表student 來了解儲存過程,因為是要了解儲存過程的簡單用法,所以所有例子均很簡單。
無引數儲存過程:
選出student表中的所有資訊,
create proc stuproc
as//此處 as 不可以省略不寫
begin //begin 和 end 是一對,不可以只寫其中乙個,但可以都不寫
select s#,sname,sage,s*** from student
endgo
有引數儲存過程:
全域性變數
全域性變數也稱為外部變數,是在函式的外部定義的,它的作用域為從變數定義處開始,到本程式檔案的末尾。
選出指定姓名的學生資訊:
create proc stuproc
@sname varchar(
100)
asbegin
select s#,sname,sage,s*** from student
where
sname
=@sname
endgo
exec stuproc '趙雷
' //執行語句
上面是在外部給變數賦值,也可以在內部直接給變數設定預設值
create proc stuproc
@sname varchar(
100)='
趙雷'asbegin
select s#,sname,sage,s*** from student
where
sname
=@sname
endgo
exec stuproc
也可以把變數的內容輸出,使用output
create proc stuproc
@sname varchar(
100),
@isright
intoutput //傳出引數
asif
exists (select s#,sname,sage,s*** from student
where
sname
=@sname)
set@isright =1
else
set@isright=0
godeclare @isright
intexec stuproc '趙雷
', @isright output
select @isright
以上是全域性變數,下面來了解區域性變數
區域性變數也稱為內部變數。區域性變數是在函式內作定義說明的。其作用域僅限於函式內部,離開該函式後再使用這種變數是非法的。
區域性變數的定義:必須先用declare命令定以後才可以使用,declare
區域性變數的賦值方法:set或者select
區域性變數的顯示:select @變數名
create proc stuproc
asdeclare @sname varchar(
100)
set@sname='
趙雷'select s#,sname,sage,s*** from student
where
sname
=@sname
goexec stuproc
那如果是要把區域性變數的資料顯示出來怎麼辦呢?
create proc stuproc
asdeclare @sname varchar(
100)
set@sname
=(select sname from student
wheres#=
01)select @sname
goexec stuproc
SqlServer之儲存過程
儲存過程最主要的特色 是當寫完乙個儲存過程後即被翻譯成可執行碼儲存在系統表 內,當作是資料庫的物件之一,一般使用者只要執行儲存過程,並且提供儲存過程所需的參 數就可以得到所要的結果而不必再去編輯 t sql 命令。儲存過程也可用在控制訪問許可權 為資料庫表中的活動建立審計追蹤 將關係到資料 庫及其所...
sql server儲存過程
建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...
SQLSERVER儲存過程
sqlserver儲存過程使用說明書 引言首先介紹一下什麼是儲存過程 儲存過程就是將常用的或很複雜的工作,預先用 sql語句寫好並用乙個指定的名稱儲存起來,並且這樣的語句是放在資料庫中的,還可以根據條件執行不同 sql語句,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 ex...