浅谈Transact-SQL
作者:hebedich 发布时间:2024-01-23 20:13:22
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
猜你喜欢
- 如下所示:arrs=[2,15,48,4,5,6,7,6,4,1,2,3,6,6,7,4,6,8]f=open('test.txt&
- 运行结果:程序代码如下:#将excel中的数据进行读取分析import openpyxlimport numpy as npimport m
- 前言: 在刚解决jupyter notebook打不开网页的问题后,我迫不及待地写了P
- MySQL的命令行提示符及其表达的意思mysql> 准备好接受新命令。 &n
- 前言数据集下载地址:链接: https://pan.baidu.com/s/17aglKyKFvMvcug0xrOqJdQ?pwd=6i7m
- 前言:Pandas 中应用 query 函数来进行数据筛选。query 函数的一般用法如下:df.query('expression
- SQL分页查询:背景在公司的系统中有一个平台是 做配置管理的 就是所谓的 CRUD 的平台,但是点击后进去到页面第一次看到的是一次查询的页面
- 一般调试程序的时候都比较倾向print,利用直接打印的方法作出判断,但是print只能打印出结果,对类型无法作出判断。例如:复制代码a =
- 昨天在W3C看到,6月10日发布了新的 HTML 5 草案(Working Draft)。粗略的读了一下它提供的 新版本说明文档 ,作了一点
- 一、表单验证form1、创建一个新的表单:<form id="id是唯一的,不可重复" name=“可重复”,me
- 一、前言在调用函数时,大多数情况下,主调函数和被调函用之间有数据传递关系,这就是有参数的函数形式。函数参数的作用是传递数据给函数使用,函数利
- 本文为大家分享了windows下pycharm安装、创建文件、配置默认模板的具体步骤,供大家参考,具体内容如下步骤: 下包 —->安装
- 一、软件下载官方下载地址:https://download.jetbrains.8686c.com/webstorm/WebStorm-20
- 版本一:按分隔符进行比较 算法思路:按分隔符截取搜索字符串循环与待搜索字符进行比较 USE [Fly] GO --参数:@inStr 待搜索
- 1. Jupyter 默认目录调整首先要找到jupyter生成的配置文件 jupyter_notebook_config.py 。如果没有,
- python去除文件中重复的行,我们可以设置一个一个空list,res_list,用来加入没有出现过的字符行!如果出现在res_list,我
- 自开始做项目以来,一直在用。这段存储过程的的原创者(SORRY,忘记名字了),写得这段SQL代码很不错,我在这个基础上,按照我的习惯以及思维
- SQL Server数据库快捷键:书签:清除所有书签。 CTRL-SHIFT-F2书签:插入或删除书签(切换)。 CTRL+F2书签:移动到
- 有很多时候,我们会在python的运行过程中得到一些重要的变量,比如一个数据量很庞大的dict。而且,后面的某些程序也会用到这个dict,那
- 一、块(Block)是PL/SQL的基本执行单元,由定义部分,执行部分(必须)和例外处理部分组成。Declare/*定义部分――定义常量、变