儲存過程入門教程

2021-04-25 23:12:33 字數 2212 閱讀 1625

什麼是儲存過程呢?

定義:將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來, 那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。

講到這裡,可能有人要問:這麼說儲存過程就是一堆sql語句而已啊?

microsoft公司為什麼還要新增這個技術呢?

那麼儲存過程與一般的sql語句有什麼區別呢?

儲存過程的優點:

1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般sql語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。

2.當對資料庫進行複雜操作時(如對多個表進行update,insert,query,delete時),可將此複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。

3.儲存過程可以重複使用,可減少資料庫開發人員的工作量

4.安全性高,可設定只有某此使用者才具有對指定儲存過程的使用權

儲存過程的種類:

如 sp_help就是取得指定物件的相關資訊

2.擴充套件儲存過程   以xp_開頭,用來呼叫作業系統提供的功能

exec master..xp_cmdshell 'ping 10.8.16.1'

3.使用者自定義的儲存過程,這是我們所指的儲存過程

常用格式

create procedure procedue_name

[@parameter data_type][output]

[with]

assql_statement

解釋: 

output:表示此引數是可傳回的

with

recompile:表示每次執行此儲存過程時都重新編譯一次

encryption:所建立的儲存過程的內容會被加密

例:create proc upgetusername

@intuserid        int,

@ostrusername nvarchar(20) output

-- 要輸出的引數

asbegin

-- 將uname的值賦給 @ostrusername 變數,即要輸出的引數

select @ostrusername=uname from uuser where uid=@intuserid

end 

其中 create proc 語句(完整語句為create procedure)的意思就是告訴sql server,現在需要建立乙個儲存過程,upgetusername 就是儲存過程名稱,@intuserid 和 @ostrusername 分別是該儲存過程的兩個引數,注意,在sql server中,所有使用者定義的變數都以「@」開頭,output關鍵字表示這個引數是用來輸出的,as之後就是儲存過程內容了。只要將以上**在「查詢分析器」裡執行一次,sql server就會在當前資料庫中建立乙個名為「upgetusername」的儲存過程。你可以開啟「企業管理器」,選擇當前操作的資料庫,然後在左邊的樹型列表中選擇「儲存過程」,此時就可以在右邊的列表中看到你剛剛建立的儲存過程了(如果沒有,重新整理一下即可)。

用sqlserver生成:

set ansi_nulls on

goset quoted_identifier on

gocreate procedure sp_test

@id int,

@name varchar(20) output

asbegin

-- set nocount on added to prevent extra result sets from

-- interfering with select statements.

set nocount on;

-- insert statements for procedure here

select @name=name from test where id=@id

endgo

用sqlserver呼叫:

use [test]

godeclare @return_value int,

@name varchar(20)

exec @return_value = [dbo].[sp_test]

@id = 1,

@name = @name output

select @name as n'@name'

select 'return value' = @return_value

go

Hbase列式儲存入門教程

目錄 hbase是一種分布式 可擴充套件 支援海量資料儲存的nosql資料庫。分布式是因為hbase底層使用hdfs儲存資料,可擴充套件也是基於hdfs的橫向擴充套件能力,作為大資料的儲存當然支援海量資料的儲存,nosql非關係型資料庫表結構和關係型資料庫 如mysql 的邏輯結構 物理結構很不一樣...

CSS入門教程

css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...

CSS入門教程

css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...