概述
SQL(Structure Query Language)是结构化查询语言,是标准数据库语言.而Transact-SQL是微软公司为了其设计的数据库–SQL server而推出的一个基于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) - Retrieve 检索
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 工具
https://www.leiue.com/what-is-transact-sql
https://blog.csdn.net/AAMahone/article/details/88662171