SQL Server 2008編程入門經典筆記:腳本

腳本基礎

1、Use語句
使用Use選定數據庫。

2、聲明變量
1)聲明變量語法:Declare @變量名 類型=初始值;
2)使用Set或Select設置變量的值。
3)系統函數見書291(主要的):@@IDENTITY、IDENT_CURRENT()、@@OPTIONS、@@REMESERVER、@@ROWCOUNT、SCOPE_IDENTITY、@@SERVERNAME、@@TRANCOUNT、@@VERSION。

批處理

1)自成一行,使用GO命令。
2)每個批處理單獨發送到服務器,每個GO命令裏面的語句都會單獨執行,其中一個出錯不會影響其他。
3)GO不是T-SQL命令。
1、批處理中的錯誤
1)語法錯誤。
2)運行時錯誤

2、何時使用批處理
1)要求有自己的批處理的語句
CREATE DEFAULT
CREATE PROCEDURE
CREATE RULE
CREATE TRIGGER
CREATE VIEW
2)使用批處理建立優先權

sqlcmd

允許通過windows命令提示符來運行腳本,代替了舊的osql。
具體語法見書。

動態SQL:用EXEC命令動態生成代碼

EXEC<{<字符變量>|’語句’})
EXEC可以換成EXECUTE。
1)EXEC的陷阱
1.1)EXEC的作用域
變量如果在外部聲明,不能直接用在字符串內。
1.1.1)該規則的例外情況
系統函數可以。
1.2)安全上下文和EXEC
如果沒有訪問表的權限,使用EXEC查詢表信息會出錯
1.3)函數串聯和EXEC
在EXEC裏面還有函數運行的話,需要放入一個變量中,在EXEC。
1.4)EXEC和UDF
不能在自定義函數中運行EXEC。

控制流語句

1、IF……ELSE語句
語法:

IF <條件表達式>
<SQL 語句>|BEGIN <代碼> END
[ELSE
<SQL 語句>|BEGIN <代碼> END]
1)ELSE語句
2)將代碼組合成塊
用BEGIN和END將代碼組合起來,建議如果使用的話,那對IF裏的代碼都使用。

2、CASE語句
類似於Switch。
語法:

CASE <表達式>
WHEN <匹配表達式的值> THEN <執行代碼>
[…n]
[ELSE <代碼>]
END

1)簡單的CASE語句
根據表達式的值,選擇執行那個WHEN中代碼,沒有匹配的值就執行ELSE中的代碼。
2)搜索CASE語句
CASE後面沒有表達式。
WHEN表達式判斷爲一個布爾值。
即使多個條件符合,也只使用第一個條件。
可以混合搭配字段
可以執行任何表達式,只要最後判斷爲布爾值。

3、用WHILE語句進行循環

4、WAITOR語句
使操作延遲
語法:

WAITFOR
DELAY <’時間’>| TIME <’時間’> 

1)DELAY參數
指定延遲時間,不能指定天數。
2)TIME參數
指定從何時開始執行。

5、TRY/CATCH塊
檢查錯誤。
語法:

BEGIN TRY
(<SQL 語句>)
END TRY
BEGIN CATCH
{<SQL 語句>}
END CATCH [;]

錯誤級別和錯誤函數見書中的表。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章