Sql Server系列 開發儲存過程

2021-09-06 08:36:34 字數 1384 閱讀 4337

客戶/伺服器開發的主要目的在於將處理資料的程式移動到離資料盡可能近的地方。通過將處理資料的程式從客戶應用程式移動到伺服器,可以降低網路流量,並提高效能和資料的完整性。

要將處理資料的程式移動到離資料更近的地方,最常用的方法之一就是開發儲存過程。

1、管理儲存過程

1.1、create、alter和drop

儲存過程是由如下的資料定義語言命令來管理的:create、alter和drop。

create用於建立儲存過程,它是批處理中的第乙個命令,批處理的正常結束就意味著儲存過程建立成功。drop命令會從資料庫中刪除儲存過程,alter命令會將原有的儲存過程替換為新的**。如果要修改儲存過程,最好採用alter方法,而不要使用先刪除,再重建的方式,因為後一種方法會丟失原來儲存過程上所有的許可權設定。

create

procedure

categorylist

asselect categoryname from category

1.2、返回記錄集

儲存過程可以返回記錄集。

exec categorylist

1.3、編譯儲存過程

對應儲存過程的編譯是自動進行的。在第一次執行儲存過程的時候,就會對儲存過程進行編譯,並將編譯結果儲存在記憶體中。如果重新啟動了伺服器,所有儲存過程的編譯結果就全部丟失。只有當再次呼叫它們時,才會重新對它們進行編譯。

sql server使用master.dbo.syscacheobjects表來記錄編譯過的物件。要檢視編譯過的儲存過程,可以執行下面的查詢:

select

case(c.sql as

char(35)) as storeprocedure, cacheobjtype,usecounts as

count

from

master.dbo.syscacheobjects c

join

master.dbo.sysdatabases d

on c.dbid =

d.dbid

where d.name =

db_name

()and objtype =

'proc

'order

by storeprocedure

2、向儲存過程傳遞資料

sql server儲存過程可以使用很多的輸入和輸出引數。

2.1、輸入引數

如果要使用輸入引數向儲存過程傳遞資料,可以在create procedure命令中的儲存過程名之後列出需要新增的引數。每個引數都必須以@開始,一旦宣告了輸入引數,它就會成為該儲存過程中的區域性變數。就像宣告區域性變數一樣,必須使用合法的資料型別來定義輸入引數。在呼叫儲存過程時,必須為這些輸入變數提供值(除非該輸入變數具有預設值)。

Sql Server系列 游標

游標是一種處理資料的方法,主要用於儲存過程 觸發器和transact sql指令碼中。select語句返回的是乙個結果集,游標能夠從包含多條資料記錄的結果集中每次提取一條記錄。游標的特點 允許對由select查詢語句返回的行集中的每一行執行相同或者不同的操作,而不是對整個集合執行同乙個操作。提供對基...

個人部落格開發系列 文章實時儲存

使用websocket來進行瀏覽器與伺服器的實時通訊 服務端使用定時任務 如每天凌晨3點 將redis快取的資料儲存到mysql資料庫中 瀏覽器端初次進入新增文章頁面時,使用websocket從服務端獲取資料 先從redis中查詢,如果沒有則再從mysql資料庫中查詢 使用vue.js的watch來...

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...