Server上的SQL扩展,利用Transact-SQL不仅可以完成数据库上的各种操作,而且可以很容易地编制复杂的例行程序.
Transact-SQL语言的主要特点如下:(1)是一种交互式查询语言,功能强大,简单易学.
(2)既可以直接查询数据库,也可以嵌入到其它高级语言中执行.
(3)非过程化程度高,语句的操作执行由系统自动完成.
(4)所有的Transact-SQL命令都可以在查询分析器中完成.
9.
7Transact-SQL编程9.
7Transact-SQL编程9.
7.
1用户定义的数据类型9.
7.
2流程控制语句9.
7.
3显示和输出语句9.
7.
4函数9.
7.
5存储过程9.
7.
6触发器用户定义的数据类型可以实现以下功能:(1)可以让不同表中重复出现的各列具有相同的特性,使相似的数据种类标准化.
(2)可以将规则和默认值捆绑到用户定义的数据类型上,以约束使用此数据类型的每个列.
1.
创建用户自定义数据类型(1)使用企业管理器创建用户自定义数据类型;(2)使用T-SQL创建用户类型使用T-SQL语句创建用户自定义数据类型,可以通过调用系统存储过程sp_addtype实现,具体语法为:sp_addtypetype[,systemdata_type][,'null_type']9.
7.
1用户定义的数据类型2.
查看用户自定义数据类型可以使用sp_help系统存储过程来查看用户自定义数据类型的信息,包括它基于的系统数据类型、长度、精度、是否允许空值,以及在这一数据类型上捆绑的规则和默认值等.
3.
删除用户自定义数据类型使用企业管理器删除用户定义的数据类型;(2)使用T-SQL语句删除的方法使用系统存储过程sp_droptype来删除用户自定义数据类型.
语法格式为:sp_droptypetype_name9.
7.
1用户定义的数据类型1.
IF…ELSEIF…ELSE属于分支语句,根据条件测试的结果执行不同的命令体.
其语法结构为:IFBoolean_expression{sql_statement1|statement_block1}[ELSE{sql_statement2|statement_block2}]9.
7.
2流程控制语句2.
BEGIN…ENDBEGIN…END结构使一组Transact-SQL命令作为一个整体或一个单元来执行.
BEGIN定义了一个单元的起始位置,END作为一个单元的结束.
BEGIN…END多用于IF…ELSE结构和WHILE结构中.
其语法结构为:BEGIN{sql_statementstatement-block}END9.
7.
2流程控制语句3.
WHILEWHILE命令用于执行一个循环体.
其语法结构为:WHILEBoolean_expression{sql-statement1|statement_block1[BREAK]sql-statement2|statement_block2[CONTINUE]}9.
7.
2流程控制语句4.
GOTO标签GOTO命令与其它使用GOTO命令的高级语言一样,将程序的执行跳到相关的标签处.
GOTO命令的语法结构如下:GOTOlabel5.
WAITFOR命令WAITFOR命令产生一个延时,使存储过程或程序等候或直到一个特定时间片后继续执行.
其语法结构如下:WAITFOR{DELAY'time'|TIME'time'}9.
7.
2流程控制语句6.
RETURE命令RETURN命令使一个存储过程或程序退出并返回到调用它的程序中.
其语法结构如下:RETURN[integer_expression]7.
注释语句Transact-SQL的注释语句共有两种:行注释、块注释.
在Transact-SQL程序中,由多条命令语句组成的一组程序称为块.
行注释语句以两个减号(--)开始的若干字符,一般位于程序行之后.
块注释语句以/*开始到*/结束的若干字符.
9.
7.
2流程控制语句8.
CASE表达式CASE表达式有两种不同形式:简单CASE表达式和搜索式CASE表达式.
(1)简单CASE表达式简单CASE表达式的语法结构如下:CASElnput_expressionWHENwhen_expression1THENresult_expression1[…][WHENwhen_expressionnTHENresult_expressionn][ELSEelse_resultexpression]END9.
7.
2流程控制语句(2)搜索式CASE表达式搜索式CASE的语法结构如下:CASEWHENBoolean_expression1THENresult_expression1[…][WHENwhen_expressionnTHENresult_expressionn][ELSEelse_result_expression]END9.
7.
2流程控制语句2.
错误消息处理在存储过程中可以使用系统存储过程sp_addmessage、全局变量@@ERROR或RAISERROR命令返回出错信息.
9.
7.
3显示和输出语句1.
内置函数内置函数分类情况如表9-9所示.
9.
7.
4函数2.
用户自定义的函数SQLServer2000支持三种用户自定义函数:返回数值的用户自定义函数、内联(单语句)的返回表的用户自定义函数和多语句返回表的用户自定义函数.
用户自定义函数可以接受零个或多个输入参数,返回值可以是数值或表,不支持输出参数.
创建用户自定义函数用CREATEFUNCTION语句实现.
下面介绍两种简单的CREATEFUNCTION语句格式:(1)返回数值的用户自定义函数语句格式;(2)内联(单语句)的返回表的用户自定义函数语句格式9.
7.
4函数1.
存储过程简介SQLServer中的存储过程类似于编程语言中的过程和函数,它具有以下功能:(1)接受输入参数并返回多个输出值.
(2)包含T-SQL语句用以完成特定的SQLServer操作.
(3)返回一个指示成功与否及失败原因的状态代码给调用它的过程.
存储过程是一组预编译的Transact-SQL语句,主体构成是标准SQL命令,同时包括SQL的扩展:语句块、结构控制命令、变量、常量、运算符、表达式和流程控制等,所有这些组合在一起构成了存储过程.
存储过程有以下几种类型:系统存储过程、用户存储过程、临时存储过程、扩展存储过程和远程存储过程.
9.
7.
5存储过程2.
创建存储过程在SQLServer中创建存储过程主要有以下3种方法:使用向导、使用企业管理器和使用Transact-SQL命令.
3.
存储过程中的参数SQLServer中存储过程的参数包括输入参数和输出参数.
9.
7.
5存储过程4.
修改存储过程在企业管理器中,修改存储过程只需在相应数据库的存储过程对象项中找到要修改的存储过程,双击存储过程打开存储过程属性窗口,在窗口中直接进行修改,完成后单击"确定"按钮.
在T-SQL命令中使用ALTERPROCEDURE可以修改存储过程.
此外,还可以使用查询分析器修改存储过程.
9.
7.
5存储过程5.
运行存储过程(1)存储过程的编译首次运行存储过程时,SQLServer编译并检验其中的程序,如果发现错误,系统将拒绝执行此存储过程.
(2)存储过程的执行具有存储过程执行权限EXECUTE的用户,才可以执行存储过程.
在查询分析器中,可以直接输入存储过程名,指定相应的输入参数和输出参数后执行.
或者利用EXECUTE命令执行.
9.
7.
5存储过程6.
删除存储过程(1)使用企业管理器删除存储过程(2)使用T-SQL命令删除存储过程7.
查看存储过程的有关信息使用sp_helptext系统存储过程,可以查看定义存储过程的T-SQL语句.
使用企业管理器,也可以查看存储过程的定义.
9.
7.
5存储过程1.
触发器简介触发器是一种特殊的存储过程,是SQLServer为保证数据完整性、确保系统正常工作而设置的一种高级技术.
SQLServer2000提供了两种触发器:INSTEADOF和AFTER触发器.
这两种触发器的差别在于他们被激活的时机不同.
2.
创建触发器只有数据库所有者才能创建触发器.
在一个表上创建同名的触发器,将覆盖原有触发器.
创建触发器有以下几种方法.
(1)在SQLServer企业管理器中创建触发器(2)利用Transact-SQL命令创建触发器9.
7.
6触发器3.
AFTER触发器INSERT与UPDATE触发器:当向表中插入数据时,所有数据约束都通过之后,INSERT触发器就会执行.
利用UPDATE修改一条记录时,相当于删除一条记录然后再增加一条新记录.
(2)DELETE触发器:对表进行删除时,如果此表有DELETE型的触发器,则触发器被触发执行.
被删除的记录存在DELETED表中.
当执行DELETE操作时,应注意以下几点:①被放到DELETED表中的记录,不再存于触发器表中,因此触发器表与DElETED表没有共同的记录.
DELETED表放放在内存中,执行效率很高.
9.
7.
6触发器4.
嵌套触发器当一个表上的触发器执行时改变了表中的数据,从而又激活了此表上的另外一个触发器,第2个触发器对表的改变又触发了第3个触发器,以此类推,称为触发器嵌套.
触发器最多可以嵌套32级.
当系统检测到触发器嵌套陷入死循环或超出最大嵌套级时,触发器被取消.
系统默认允许触发器嵌套,SQLServer使用系统过程sp_configure来设置是否允许触发器嵌套.
在使用嵌套触发器时,需要注意以下几点:(1)默认情况下,触发器不能自己调用自己.
(2)在嵌套的触发器中,只要任一触发器中的任一点发生错误,则整个事务和数据都会全部ROLLBACK.
racknerd当前对美国犹他州数据中心的大硬盘服务器(存储服务器)进行低价促销,价格跌破眼镜啊。提供AMD和Intel两个选择,默认32G内存,120G SSD系统盘,12个16T HDD做数据盘,接入1Gbps带宽,每个月默认给100T流量,5个IPv4... 官方网站:https://www.racknerd.com 加密数字货币、信用卡、PayPal、支付宝、银联(卡),可以付款! ...
提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑提速啦的市场定位提速啦主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。提速啦的售后保证提速啦退款 通过于合作商的友好协商,云服务器提供3天内全额退款,超过3天不退款 物理机部分支持当天全额退款提速啦提现 充...
HostKvm商家我们也不用多介绍,这个服务商来自国内某商家,旗下也有多个品牌的,每次看到推送信息都是几个服务商品牌一起推送的。当然商家还是比较稳定的,商家品牌比较多,这也是国内商家一贯的做法,这样广撒网。这次看到黑五优惠活动发布了,针对其主打的香港云服务器提供终身6折的优惠,其余机房服务器依然是8折,另还有充值50美元赠送5美元的优惠活动,有需要的可以看看。HostKvm是一个创建于2013年的...