官术网_书友最值得收藏!

5.4 其他基本語句

T-SQL中除了這些重要的數據定義、數據操作和數據控制語句之外,還提供了一些其他的基本語句,以此來豐富T-SQL語句的功能。本節將介紹數據聲明、數據賦值和數據輸出語句。

5.4.1 數據聲明——DECLARE

數據聲明語句可以聲明局部變量、游標變量、函數和存儲過程等,除非在聲明中提供值,否則聲明之后所有變量將初始化為NULL。可以使用SET或SELECT語句對聲明的變量賦值。DECLARE語句聲明變量的基本語法格式如下:

  • @ local_variable:變量的名稱。變量名必須以at符號(@)開頭。
  • data_type:系統提供數據類型或是用戶定義的表類型或別名數據類型。變量的數據類型不能是text、ntext或image。AS指定變量的數據類型,為可選關鍵字。
  • = value:聲明的同時為變量賦值。值可以是常量或表達式,但它必須與變量聲明類型匹配,或者可隱式轉換為該類型。

【例5.29】聲明兩個局部變量,名稱為username和pwd,并為這兩個變量賦值,輸入語句如下。

這里定義了兩個變量,其中保存了用戶名和驗證密碼,輸出結果如圖5-22所示。

圖5-22 使用DECLARE聲明局部變量

代碼中第一個SELECT語句用來對定義的局部變量@pwd賦值,第二個SELECT語句顯示局部變量的值。

5.4.2 數據賦值——SET

SET命令用于對局部變量進行賦值,也可以用于用戶執行SQL命令時設定SQL Server中的系統處理選項,SET賦值語句的語法格式如下:

第一條SET語句表示對局部變量賦值,value是一個具體的值,expression是一個表達式;第二條語句表示對執行SQL命令時的選項賦值,ON表示打開選項功能,OFF表示關閉選項功能。

SET語句可以同時對一個或多個局部變量賦值。

SELECT語句也可以為變量賦值,其語法格式與SET語句格式相似。

提示

在SELECT賦值語句中,當expression為字段名時,SELECT語句可以使用其查詢功能返回多個值,但是變量保存的是最后一個值;如果SELECT語句沒有返回值,則變量值不變。

【例5.30】查詢stu_info表中的學生成績,并將其保存到局部變量stuScore中,輸入語句如下。

代碼執行結果如圖5-23所示。

圖5-23 使用SELECT語句為變量賦值

由圖5-23可以看到,SELECT語句查詢的結果中最后一條記錄的s_score字段值為88,給stuScore賦值之后,其顯示值為88。

5.4.3 數據輸出——PRINT

PRINT語句可以向客戶端返回用戶定義信息,可以顯示局部或全局變量的字符串值。其語法格式如下。

  • msg_str:是一個字符串或Unicode字符串常量。
  • @local_variable:任何有效的字符數據類型的變量。它的數據類型必須為char或varchar,或者必須能夠隱式轉換為這些數據類型。
  • string_expr:字符串的表達式。可包括串聯的文字值、函數和變量。

【例5.31】定義字符串變量name和整數變量age,使用PRINT輸出變量和字符串表達式值,輸入語句如下。

代碼執行結果如圖5-24所示。

圖5-24 使用PRINT輸出變量結果

代碼中第3行輸出字符串常量值,第4行PRINT的輸出參數為一個字符串串聯表達式。

主站蜘蛛池模板: SHOW| 洞口县| 托克托县| 吉安市| 中方县| 景泰县| 时尚| 鹤岗市| 卢湾区| 喀什市| 红桥区| 吉林省| 赞皇县| 龙南县| 温州市| 富裕县| 新竹县| 元阳县| 额敏县| 张家川| 乌恰县| 宜宾县| 祁门县| 乌苏市| 巴林左旗| 伊金霍洛旗| 沁阳市| 北票市| 黔西县| 高尔夫| 无棣县| 巴马| 泰来县| 色达县| 新安县| 高淳县| 富源县| 平凉市| 穆棱市| 奇台县| 特克斯县|