使用 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
注意:資料庫語言和程式設計語言有一些關鍵字,關鍵字是在某一環境下能夠促使某一操作發生的字元組。為避免衝突和產生錯誤,在命名表、列、變數以及其他對象時應避免使用關鍵字。