【转】 什么是Transact-SQL?

什么是Transact-SQL?
2010-02-01 19:30

         Transact-SQL(又称 T-SQL),是在 Microsoft SQL ServerSybase SQL Server 上的 ANSI SQL 实现,与 OraclePL/SQL 性质相近(不只是实现 ANSI SQL,也为自身数据库系统的特性提供实现支持),目前在 Microsoft SQL Server[1] 和 Sybase Adaptive Server[2] 中仍然被使用为内核的查询语言。

Transact-SQL = 批次特性 + 区块特性 + ANSI SQL

数据库开发人员可以利用Transact-SQL来撰写数据部份的商业逻辑 (Data-based Business Logic),以强制限制前端应用程序对数据的控制能力。同时,它也是数据库对象的主要开发语言。

Transact-SQL 以 ANSI SQL 为主要组成,目前 Microsoft 实现的 Transact-SQL 可支持到 ANSI SQL-92 标准。

批次特性

Transact-SQL 可以使用分号 ";" 来分割不同的 SQL 指令。例如:

INSERT INTO myTable (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 @v int -- declare a variable
SET @v = 50 -- set variable directly.
SELECT @v = SUM(Qty) FROM SaleItemRecords WHERE SaleID = 53928 -- set variable from a result of statement

错误处理

Transact-SQL 可以在区块中使用下列方式来处理或引发错误:

  1. RAISERROR,掷出自定义的错误状况。
  2. TRY ... CATCH,使用结构化的方式来处理错误(只有 Microsoft SQL Server 实现的 Transact-SQL 支持)。
  3. PRINT,可以印出变量值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值