浅谈Transact-SQL

前端之家收集整理的这篇文章主要介绍了浅谈Transact-SQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Transact-sql(又称T-sql),是在MicrosoftsqlServer和SybasesqlServer上的ANSIsql实现,与Oracle的PL/sql性质相近(不只是实现ANSIsql,也为自身数据库系统的特性提供实现支持),目前在MicrosoftsqlServer和SybaseAdaptiveServer中仍然被使用为核心的查询语言。

Transact-sql是具有批量与区块特性的sql指令集合,数据库开发人员可以利用它来撰写数据部份的商业逻辑(Data-basedBusinessLogic),以强制限制前端应用程序对数据的控制能力。同时,它也是数据库对象的主要开发语言。

语言结构

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

ANSIsql基础语法支持

DDL

主条目:数据定义语言

DDL(DataDefinitionLanguage)是对于数据库对象的控制语法,对数据库对象(如数据表,预存程序,函数自定义类型等)的新增,修改删除都使用此语法。

CREATE(创建数据库对象)ALTER(修改数据库对象)DROP(删除数据库对象)

DML

主条目:数据操纵语言

DML(DataManipulationLanguage)是一般开发人员俗称的CRUD(Create/Retrieve/Update/Delete)功能,意指数据的新增/截取修改删除四个功能

SELECT(R)INSERT(C)UPDATE(U)DELETE(D)

DCL

主条目:数据控制语言

DCL(DataControlLanguage)是由数据库所提供的保安功能,对于数据库数据库对象的访问原则与权限,都由DCL定义之。

GRANT(赋与权限)REVOKE(撤消权限)批量

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

INSERTINTOmyTable(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@vINT--declareavariableSET@v=50--setvariabledirectly.SELECT@v=SUM(Qty)FROMSaleItemRecordsWHERESaleID=53928--setvariablefromaresultofstatement

错误处理

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

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

微软Transact-sql介绍地址:

原文链接:https://www.f2er.com/mssql/63186.html

猜你在找的MsSQL相关文章