Movatterモバイル変換


[0]ホーム

URL:


跳转到内容
维基百科自由的百科全书
搜索

Transact-SQL

本页使用了标题或全文手工转换
维基百科,自由的百科全书

Transact-SQL(又稱T-SQL),是在Microsoft SQL ServerSybase SQL Server上的ANSISQL實作,與OraclePL/SQL性質相近(不只是實作ANSI SQL,也為自身資料庫系統的特性提供實作支援),目前在Microsoft SQL Server[1]和Sybase Adaptive Server[2]中仍然被使用為核心的查詢語言。

Transact-SQL是具有批次與區塊特性的SQL指令集合,資料庫開發人員可以利用它來撰寫資料部份的商業邏輯(Data-based Business Logic),以強制限制前端應用程式對資料的控制能力。同時,它也是資料庫物件的主要開發語言。

語言結構

[编辑]

Transact-SQL以ANSI SQL為主要組成,目前Microsoft實作的Transact-SQL可支援到ANSISQL-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指令。例如:

INSERTINTOmyTable(myText)VALUES(@myText);SELECT@@IDENTITY

控制流語法

[编辑]

Transact-SQL可支援下列的控制流程語法(control-flow):

  1. BEGIN ... END,標示SQL指令區塊,使用BEGIN ... END包裝的指令會被視為同一個指令區塊。
  2. IF ... ELSE的條件式,並可支援巢狀式的IF判斷式,若IF或ELSE中的指令包含兩個以上,則必須要使用BEGIN ... END來標示區塊,否則會發生語法檢查錯誤。
  3. WHILE迴圈,這也是Transact-SQL中唯一支援的迴圈,迴圈中的指令要用BEGIN...END包裝。
  4. RETURN,可強制終止區塊的執行。
  5. WAITFOR,可強制讓陳述式等待指定時間後才繼續執行。
  6. GOTO,可導向執行指令到指定的位置。

自訂變數

[编辑]

在Transact-SQL中,可以利用DECLARE來宣告變數,用SET來設定變數值,用SELECT @var = column的方式,由一個陳述式的回傳值中來取得變數值。

DECLARE@vint-- declare a variableSET@v=50-- set variable directly.SELECT@v=SUM(Qty)FROMSaleItemRecordsWHERESaleID=53928-- set variable from a result of statement

錯誤處理

[编辑]

Transact-SQL可以在區塊中使用下列方式來處理或引發錯誤:

  1. RAISERROR,擲出自訂的錯誤狀況。
  2. TRY ... CATCH,使用結構化的方式來處理錯誤(只有Microsoft SQL Server實作的Transact-SQL支援)。
  3. PRINT,可以印出變數值。

開發與管理工具

[编辑]

Transact-SQL通常會使用由SQL Server或Adaptive Server提供的查詢工具,像是:

  • SQL Server Query Analyzer(SQL Server 2000, 7.0, 6.5)
  • SQL Server Management Studio(SQL Server 2008(也可用Visual Studio), 2005)
  • osql.exe,SQL Server 2000, 7.0的命令列SQL工具。
  • sqlcmd.exe,SQL Server 2005的命令列SQL工具

參考資料

[编辑]
  1. ^Transact-SQL Reference. [2008-09-13]. (原始内容存档于2008-09-19). 
  2. ^Sybase Transact-SQL User's Guide. [2020-09-27]. (原始内容存档于2016-03-06). 
概念
数据库组件
SQL
分类
指令
安全
实现
类型
数据库产品
数据库组件
检索自“https://zh.wikipedia.org/w/index.php?title=Transact-SQL&oldid=61989955
分类:​

[8]ページ先頭

©2009-2026 Movatter.jp