常用儲存過程語法收藏

2021-05-04 08:57:24 字數 3649 閱讀 4875

常用儲存過程語法收藏

新一篇: 利用watin自動化**功能測試 | 舊一篇: **自動生成工具mygeneration之三

前面學過了基本的儲存過程,見

儲存過程入門

現在學一下常用的儲存過程的語法,只要花一點點時間學習下,就能用儲存過程實現很複雜的功能,可以少寫很多**。

為了方便說明,資料庫使用sql server的示例資料庫,northwind和pubs,如果sql server中沒有的話,可以按下面的方法安裝

2,安裝後,到預設目錄c:/sql server 2000 sample databases 有instnwnd.sql ,instpubs.sql兩個檔案

3,在sql server中執行這兩個sql 就可以建立你northwind和pubs資料庫。

下面開始學t-sql的語法

一.注釋

-- 單行注釋,從這到本行結束為注釋,類似c++,c#中//

/* … */ 多行注釋,類似c++,c#中/* … */

二.變數(int, smallint, tinyint, decimal,float,real, money ,smallmoney, text ,image, char, varchar。。。。。。)

語法:

declare

} [,...n]

例如:

declare @id int --申明乙個名為@id的變數,型別為int型

三.在sql server視窗中列印出變數的值

語法:

print 'any ascii text' | @local_variable | @@function | string_expr

四.變數賦值

例如:

--從資料表中取出第一行資料的id,賦值給變數@id,然後列印出來

declare @id int

set @id = (select top(1) categoryid from categories)

print @id

在sql中,我們不能像**那樣直接給變數賦值,例如@id = 1,如果要達到這樣的功能,可以這樣寫:

declare @id int

set @id = (select 1) -- 類似 @id=1

select @id=1 -- 類似 @id=1

print @id

五.變數運算(+,-,*,/,……)

以下必要時候省略變數申明

set @id = (select 1+5) --類似 @id=1+5

set @id=(select 1-@id) --類似 @id=1-@id

六.比較操作符

• > (greater than).

• < (less than).

• = (equals).

• <= (less than or equal to).

• >= (greater than or equal to).

• != (not equal to).

• <> (not equal to).

• ! < (not less than).

• !> (not greater than).

沒什麼說的

七.語句塊:begin … end

將多條語句作為乙個塊,類似與c++,c#中的

例如:

begin

set @id1 = (select 1)

set @id2 = (select 2)

end

八.if, if…else…

語法:

if boolean_expression

[else ]

例如:

if @id is not null

print 『@id is not null

if @id = 1

begin

set @id = (select 1 + 1)

end

else

begin

set @id=(select 1+2)

end

上面的例子用到了比較操作符,語句塊,和if的語法。

九.執行其他儲存過程 exec

例如 exec dbo.[sales by year] @beginning_date=』1/01/90』, @ending_date=』1/01/08』

十.事務

語法:

begin tran[saction] [transaction_name | @tran_name_variable]

例如 begin tran

-- 做某些操作,例如insert into …

if @@error <> 0

begin

rollback tran

end

else

begin

commit tran

end

十一.游標

我們可以在儲存過程中用select語句取出每一行資料進行操作,這就需要用到游標。

語法:

declare cursor_name cursor

[local | global]

[forward_only | scroll]

[static | keyset | dynamic | fast_forward]

[read_only | scroll_locks | optimistic]

[type_warning]

for select_statement

[for update [of column_name [,...n]]]

例如:

declare @au_id varchar(11), @au_fname varchar(20) –申明變數

--申明乙個游標

declare authors_cursor cursor for

select au_id, au_fname from authors

--開啟游標

open authors_cursor

--取出值

fetch next from authors_cursor into @au_id, @au_fname

--迴圈取出游標的值

while @@fetch_status = 0

begin

print @au_id

print @au_fname

print 『 』

fetch next from authors_cursor

into @au_id, @au_fname

end

close authors_cursor –關閉游標

deallocate authors_cursor --釋放游標

我覺得上面的是儲存過程常用的一些東東,如果要更深入的了解,更詳細的幫助,請參考sql server的幫助文件

常用儲存過程語法收藏

只要花一點點時間學習下,就能用儲存過程實現很複雜的功能,可以少寫很多 為了方便說明,資料庫使用sql server的示例資料庫,northwind和pubs,如果sql server中沒有的話,可以按下面的方法安裝 2,安裝後,到預設目錄c sql server 2000 sample databa...

MySQL 儲存過程 常用語法

mysql 儲存過程是從 mysql 5.0 開始增加的新功能。儲存過程的優點有一籮筐。不過最主要的還是執行效率和sql 封裝。特別是 sql 封裝功能,如果沒有儲存過程,在外部程式訪問資料庫時 例如 php 要組織很多 sql 語句。特別是業務邏輯複雜的時候,一大堆的 sql 和條件夾雜在 php...

sql server儲存過程語法

儲存過程就是作為可執行物件存放在資料庫 中的乙個或多個sql命令。定義總是很抽象。儲存過程其實就是能完成一定操作的一組sql語句,只不過這組語句是放在資料庫 中的 這裡我們只談sql server 如果我們通過建立儲存過程以及在asp中呼叫儲存過程,就可以避免將sql語句同asp 混雜在一起。這樣做...