淺談Transact-SQL。本站提示廣大學習愛好者:(淺談Transact-SQL)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談Transact-SQL正文
Transact-SQL(又稱T-SQL),是在Microsoft SQL Server和Sybase SQL Server上的ANSI SQL完成,與Oracle的PL/SQL性質鄰近(不只是完成ANSI SQL,也為本身數據庫體系的特征供給完成支撐),今朝在Microsoft SQL Server和Sybase Adaptive Server中依然被應用為焦點的查詢說話。
Transact-SQL是具有批量與區塊特征的SQL指令聚集,數據庫開辟人員可以應用它來撰寫數據部分的貿易邏輯(Data-based Business Logic),以強迫限制前端運用法式對數據的掌握才能。同時,它也是數據庫對象的重要開辟說話。
說話構造
Transact-SQL以ANSI SQL為重要構成,今朝Microsoft完成的Transact-SQL可支撐到ANSI SQL-92尺度。
ANSI SQL基本語法支撐
DDL
主條目:數據界說說話
DDL(Data Definition Language)是關於數據庫對象的掌握語法,對數據庫對象(如數據表,預存法式,函數或自界說類型等)的新增,修正和刪除都應用此語法。
CREATE(創立數據庫對象)ALTER(修正數據庫對象)DROP(刪除數據庫對象)
DML
主條目:數據把持說話
DML(Data Manipulation Language)是普通開辟人員俗稱的CRUD(Create/Retrieve/Update/Delete)功效,意指數據的新增/截取/修正/刪除四個功效。
SELECT(R)INSERT(C)UPDATE(U)DELETE(D)
DCL
主條目:數據掌握說話
DCL(Data Control Language)是由數據庫所供給的保安功效,關於數據庫與數據庫對象的拜訪准繩與權限,都由DCL界說之。
GRANT(賦予權限)REVOKE(取消權限)批量
Transact-SQL可使用分號";"來分區分歧的SQL指令。例如:
INSERT INTO myTable (myText) VALUES (@myText); SELECT @@IDENTITY
掌握流語法
Transact-SQL可支撐以下的掌握流程語法(control-flow):
BEGIN ... END,標示SQL指令區塊,應用BEGIN ... END包裝的指令會被視為統一個指令區塊。IF ... ELSE的前提式,並可支撐嵌套式的IF斷定式,若IF或ELSE中的指令包括兩個以上,則必需要應用BEGIN ... END來標示區塊,不然會產生語法檢討毛病。WHILE輪回,這也是Transact-SQL中獨一支撐的輪回,輪回中的指令要用BEGIN...END包裝。RETURN,可強迫終止區塊的運轉。WAITFOR,可強迫讓陳說式期待指准時間後才持續運轉。GOTO,可導向運轉指令到指定的地位。自界說變量
在Transact-SQL中,可以應用DECLARE來聲明變量,用SET來設置變量值,用SELECT @var = column的方法,由一個陳說式的回傳值中來獲得變量值。
DECLARE @v INT -- declare a variableSET @v = 50 -- set variable directly.SELECT @v = SUM(Qty) FROM SaleItemRecords WHERE SaleID = 53928 -- set variable from a result of statement
毛病處置
Transact-SQL可以在區塊中應用以下方法來處置或激發毛病:
RAISERROR,擲出自界說的毛病狀態。TRY ... CATCH,應用構造化的方法來處置毛病(只要Microsoft SQL Server完成的Transact-SQL支撐)。PRINT,可以印出變量值。
微軟Transact-sql引見地址:http://msdn.microsoft.com/zh-cn/library/bb510741.aspx