• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅谈Transact-SQL

    Transact-SQL(又称T-SQL),是在Microsoft SQL Server和Sybase SQL Server上的ANSI SQL实现,与Oracle的PL/SQL性质相近(不只是实现ANSI 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可以使用分号";"来分区不同的SQL指令。例如:

    INSERT INTO myTable (myText) VALUES (@myText); SELECT @@IDENTITY

    控制流语法

    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中,可以利用DECLARE来声明变量,用SET来设置变量值,用SELECT @var = column的方式,由一个陈述式的回传值中来取得变量值。

    DECLARE @v INT -- declare a variableSET @v = 50 -- set variable directly.SELECT @v = SUM(Qty) FROM SaleItemRecords WHERE SaleID = 53928 -- set variable from a result of statement

    错误处理

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

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

    微软Transact-sql介绍地址:http://msdn.microsoft.com/zh-cn/library/bb510741.aspx

    您可能感兴趣的文章:
    • mysql报错:Deadlock found when trying to get lock; try restarting transaction的解决方法
    • c#中SqlTransaction——事务详解
    • mysql Non-Transactional Database Only(只支持MyISAM)
    • MySQL数据库事务隔离级别介绍(Transaction Isolation Level)
    • Transact_SQL 小手册
    • Sql Server数据库常用Transact-SQL脚本(推荐)
    上一篇:深入浅出解析mssql在高频,高并发访问时键查找死锁问题
    下一篇:在SQL Server中迁移数据的几种方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    浅谈Transact-SQL 浅谈,Transact-SQL,浅谈,Transact-SQL,