您好!欢迎访问家园网-www.jy.wang!

家园网

T-SQL是个啥

网络 作者:本站 点击:

T-SQL 详解

T-SQL 是 Transact-SQL 的缩写,是 Microsoft SQL Server 和 Sybase 数据库使用的扩展版 SQL


一、全称与词源

缩写全称中文
TTransact事务处理、执行
SQLStructured Query Language结构化查询语言

词源拆解

单词词源含义
Transact拉丁语 trans(横穿)+ agere(做)办理、执行事务
Transact是 Transaction(事务)的动词形式进行事务处理
SQL标准缩写数据库查询语言

字面意思能够处理事务的 SQL 扩展语言


二、T-SQL 与 SQL 的关系

text

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   SQL(标准)                                               │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  SELECT * FROM users                                │   │
│   │  INSERT INTO orders ...                             │   │
│   │  UPDATE products ...                                │   │
│   │  DELETE FROM logs ...                               │   │
│   └─────────────────────────────────────────────────────┘   │
│                           +                                 │
│   T-SQL 扩展功能                                            │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  • 变量        DECLARE @count INT = 0               │   │
│   │  • 条件判断    IF ... ELSE                          │   │
│   │  • 循环        WHILE ...                            │   │
│   │  • 事务        BEGIN TRANSACTION ... COMMIT         │   │
│   │  • 错误处理    TRY...CATCH                          │   │
│   │  • 存储过程    CREATE PROCEDURE                     │   │
│   │  • 函数        CREATE FUNCTION                      │   │
│   │  • 触发器      CREATE TRIGGER                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                           =                                 │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                T-SQL(Transact-SQL)                 │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘


三、标准 SQL 做不到,T-SQL 能做到的事

功能标准 SQLT-SQL
变量❌ 不支持✅ DECLARE @count INT
条件分支❌ 不支持✅ IF...ELSECASE
循环❌ 不支持✅ WHILE
事务控制有限支持✅ BEGIN TRANCOMMITROLLBACK
错误捕获❌ 不支持✅ BEGIN TRY...BEGIN CATCH
存储过程无统一标准✅ 完整支持
自定义函数❌ 不支持✅ 支持

四、T-SQL 代码示例

sql

-- 这是 T-SQL,用到了标准 SQL 没有的功能DECLARE @count INT = 0;              -- 变量DECLARE @max_id INT;SELECT @max_id = MAX(id) FROM orders; -- 查询结果存入变量IF @max_id > 1000                     -- 条件判断BEGIN
    PRINT '订单数量超过1000'
    
    WHILE @count < 10                 -- 循环
    BEGIN
        INSERT INTO logs VALUES (@count, GETDATE())
        SET @count = @count + 1
    ENDENDELSEBEGIN
    PRINT '订单数量正常'END


五、T-SQL 的特色语句

语句作用示例
DECLARE声明变量DECLARE @name VARCHAR(50)
SET给变量赋值SET @name = '张三'
PRINT输出信息PRINT '处理完成'
BEGIN TRAN开始事务BEGIN TRANSACTION
COMMIT提交事务COMMIT
ROLLBACK回滚事务ROLLBACK
BEGIN TRY开始错误捕获BEGIN TRY
THROW抛出错误THROW 50001, '出错了', 1
EXEC执行存储过程EXEC sp_help
OUTPUT输出参数@result INT OUTPUT

六、与其他 SQL 方言的对比

数据库扩展语言特点
SQL ServerT-SQL变量、循环、错误处理丰富
OraclePL/SQL过程式编程,功能强大
PostgreSQLPL/pgSQL接近 PL/SQL 语法
MySQL存储过程功能相对较弱

语法对比示例(循环)

T-SQL

sql

DECLARE @i INT = 1WHILE @i <= 10BEGIN
    PRINT @i
    SET @i = @i + 1END

PL/SQL(Oracle)

sql

DECLARE
    i NUMBER := 1;BEGIN
    LOOP
        DBMS_OUTPUT.PUT_LINE(i);
        i := i + 1;
        EXIT WHEN i > 10;
    END LOOP;END;


七、Transact 的词源深度解析

360截图20260502211417150.jpg


同源词:transaction(事务)、actor(行动者)、agent(代理人)


八、T-SQL 的历史背景

时间事件
1970sSQL 由 IBM 发明
1986ANSI 发布 SQL 标准
1988Sybase 发布 T-SQL 命名版本
1989Microsoft 与 Sybase 合作开发 SQL Server
1990sMicrosoft 独立发展 T-SQL
至今T-SQL 是 SQL Server 的核心语言

九、总结

问题答案
T-SQL 是什么?Microsoft SQL Server 使用的 SQL 扩展语言
全称是什么?Transact-SQL
词源Transact(办理事务)+ SQL(查询语言)
与 SQL 的关系SQL 是基础,T-SQL 在 SQL 基础上增加了编程能力
增加了什么?变量、循环、条件、事务控制、错误处理、存储过程
谁在用?SQL Server、Sybase 数据库

一句话总结T-SQL = 标准 SQL + 编程能力Transact 来自拉丁语“办理、执行”,强调的是能够处理完整业务事务的能力。如果说 SQL 只是“问问题的语言”,T-SQL 就是“写程序的数据库语言”——你可以在数据库里直接写循环、做判断、处理错误、管理事务,就像写编程语言一样


标签: