云服务器网:购买云服务器和VPS必上的网站!

浅谈Transact-SQL

Transact-SQL(又称T-SQL),是在MicrosoftSQLServer和SybaseSQLServer上的ANSISQL实现,与Oracle的PL/SQL性质相近(不只是实现ANSISQL,也为本身数据库系统的特性提供实现支持),目前在Micro

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⑼2标准。

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介绍地址:http://msdn.microsoft.com/zh-cn/library/bb510741.aspx

本文来源:https://www.yuntue.com/post/154784.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注