帶你了解 SQL Server 儲存過程

2021-10-06 08:33:51 字數 2643 閱讀 3199

簡單來說,儲存過程是乙個預編譯的sql語句,儲存在資料庫中,可由應用程式呼叫執行。

優點:允許模組化的設計,就是說只需要建立一次,以後在程式中便可呼叫多次。如果某次操作需要執行多次sql語句,使用儲存過程比單純sql語句執行要快。響應時間上來說有優勢,可以給我們帶來執行效率提高的好處,且使用儲存過程的系統更加穩定。

缺點:維護性較差,相對於簡單sql,儲存過程並沒有什麼優勢,並且在進行除錯時會比較困難。

1)建立

create proc 儲存過程名 引數

2)呼叫

exec 儲存過程名 引數

3)修改

alter proc 儲存過程名 引數

4)刪除

drop proc 儲存過程名

首先建立兩張表:1)書籍表(books) 2)書籍分類表(booktype)

如下圖:

1>建立不帶引數的儲存過程

--不帶引數的儲存過程

create proc cp_select_books

asselect

*from books

--呼叫儲存過程

exec cp_select_books

2>建立帶輸入引數的儲存過程

--帶輸入引數的儲存過程

create proc cp_select_books_byname

( @name nvarchar(50

))asselect

*from

books

where

name like '%'

+@name+

'%'--呼叫儲存過程

exec cp_select_books_byname '建築'

3>建立帶輸入和輸出引數的儲存過程

--帶輸入和輸出引數的儲存過程

--進行模糊查詢,返回記錄數

create proc cp_select_books_bynameex

( @name nvarchar(50

),@rowcount int

out)

asselect

*from

books

where

name like '%'

+@name+

'%'select @rowcount=

count(*

)from

books

where

name like '%'

+@name+

'%'go

--呼叫儲存過程

--定義乙個變數,接受返回值@rowcount

declare @count int

exec cp_select_books_bynameex '建築'

,@count out

--列印記錄數

print @count

--建立乙個儲存過程,根據名稱,第幾頁,每頁顯示多少條,查詢滿足條件的記錄和記錄數

create proc cp_select_books_bynamefy

( @name nvarchar(50

),--名稱

@pageindex int

,--頁碼

@pagesize int

,--每頁顯示多少條

@rowcount int

out--輸出引數滿足條件的行數)as

select top (@pagesize)

*from

books

where

id not in

(select top (@pagesize*

(@pageindex-1)

)idfrom

books

where

name like '%'

+@name+

'%' order by id) and name like '%'

+@name+

'%'

order by id

select @rowcount=

count(*

)from

books

where

name like '%'

+@name+

'%'go

--呼叫儲存過程

--定義乙個變數,接受返回值@rowcount

declare @count int

exec cp_select_books_bynamefy '建築',2

,5,@count out

--列印記錄數

print @count

帶你了解 SQL Server 自定義函式

自定義函式的型別 1 標量值函式 2 錶值函式 內聯 值函式,多語句錶值函式 首先建立三張表 書籍表 books 書籍分類表 booktype 客戶表 customers 如下 1 建立標量值函式 實現功能 將客戶表 customers 中的 欄位中的值變成男或女 如下 建立標量值函式 gocrea...

帶你了解make menuconfig

帶你了解make menuconfig 在嵌入式領域當中,在配置核心的時候會有很多配置方法,比如說make config 基於文字的為傳統的配置介面 make oldconfig 如何只想在原來核心配置的基礎上修改一部分,則會省去很多麻煩 make xconfig 基於圖形視窗模式的配置介面,xwi...

帶你了解IPython

1 支援 的自動補全 自動縮排,已經支援bash shell 2 jupyter notebook 以前稱為ipython notebook 它提供了乙個使用者和ipython核心互動的乙個介面,同時它又是乙個互動式的筆記本 可以儲存你的源 執行結果 集文字 markdown 影象 公式與一體的py...