Transact-SQL(又称T-SQL)是在Microsoft SQL Server和Sybase SQL Server上的ANSI SQL实现,与Oracle的PL/SQL性质相近,被使用为核心的查询语言。
Transact-SQL(又称 T-SQL)是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Oracle 的 PL/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 可支持下列的控制流程语法(control-flow):
BEGIN … END,标示 SQL 指令区块,使用 BEGIN … END 包装的指令会被视为同一个指令区块。IF … ELSE 的条件式,并可支持嵌套式的 IF 判断式,若 IF 或 ELSE 中的指令包含两个以上,则必须要使用 BEGIN … END 来标示区块,否则会发生语法检查错误。WHILE 循环,这也是 Transact-SQL 中唯一支持的循环,循环中的指令要用 BEGIN…END 包装。RETURN,可强制终止区块的运行。WAITFOR,可强制让语句等待指定时间后才继续运行。GOTO,可导向运行指令到指定的位置。
开发与管理工具
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 工具