sql server 局部變數的使用與說明

來源:互聯網
上載者:User

使用 declare
下例使用名為 @find 的局部變數檢索所有姓以 ring 開頭的作者資訊。
複製代碼 代碼如下:
use pubs
declare @find varchar(30)
set @find='ring%'
select au_lname,au_fname,phone
from authors
where au_lname like @find


@find就是一個局部變數。

b. 在 declare 中使用兩個變數
下例從 binnet & hardley (pub_id = 0877) 的僱員中檢索從 1993 年 1 月 1 日起所僱傭的僱員名稱。
複製代碼 代碼如下:
use pubs
set nocount on
go
declare @pub_id char(4), @hire_date datetime
set @pub_id = '0877'
set @hire_date = '1/01/93'
-- here is the select statement syntax to assign values to two local
-- variables.
-- select @pub_id = '0877', @hire_date = '1/01/93'
set nocount off
select fname, lname
from employee
where pub_id = @pub_id and hire_date >= @hire_date

下面是結果集:

fname lname
-------------------- ------------------------------
anabela domingues
paul henriot

(2 row(s) affected)


局部變數
局部變數是使用者可自訂的變數,它的作用範圍僅在程式內部。局部變數的名稱是使用者自訂的,命名的局部變數名要符合sql server 2000標識符命名規則,局部變數名必須以@開頭。
1.聲明局部變數
局部變數的聲明需要使用declare語句。
文法:
declare
{
@varaible_name   datatype   [ ,… n  ]
}
參數說明:
l          @varaible_name:局部變數的變數名必須以@開頭,另外變數名的形式必須符合sql server標識符的命名方式。
l          datatype:局部變數使用的資料類型可以是除text , ntext或者image類型外所有的系統資料類型和使用者自訂資料類型。一般來說,如果沒有特殊的用途,建議在應用時盡量使用系統提供的資料類型。這樣做,可以減少維護應用程式的工作量。
例如聲明局部變數 @ songname。
sql語句如下:
declare  @songname   char(10)
2.為局部變數賦值
為變數賦值的方式一般有兩種,一種是使用select語句,一種是使用set語句。使用select語句為變數賦值的文法如下:
select    @varible_name   =  expression
[from    table_name [ ,… n ]
where   clause  ]
上面的select語句的作用是為了給變數賦值,而不是為了從表中查詢出資料。而且在使用select語句進行賦值的過程中,並不一定非要使用from關鍵字和where子句。
樣本:
在“student”資料庫教程的“course”表中,把“課程內容”是“藝術類”資訊賦值給局部變數@songname,並把它的值用print關鍵字顯示出來。在查詢分析器中啟動並執行結果如圖1所示。

圖1  把查詢內容賦值給局部變數
sql語句如下:
use     student
declare @songname   char(10)
select  @songname=課程內容  from  course where 課程類別='藝術類'
print   @songname
select語句賦值和查詢不能混淆,例如聲明一個局部變數名是@ b並賦值的sql語句如下:
declare  @b  int
select  @b=1
另一種為局部變數賦值的方式是使用set語句。使用set語句對變數進行賦值的常用文法如下:
{ set  @varible_name  =  ecpression } [ ,… n ]
下面是一個簡單的指派陳述式:
declare  @song  char(20)
set  @song  =  'i  love  flower'
還可以為多個變數一起賦值,相應的sql語句如下所示:
declare  @b  int, @c  char(10),@a  int
select @b=1, @c='love',@a=2
注意:資料庫語言和程式設計語言有一些關鍵字,關鍵字是在某一環境下能夠促使某一操作發生的字元組。為避免衝突和產生錯誤,在命名表、列、變數以及其他對象時應避免使用關鍵字。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.