欢迎来到天天文库
浏览记录
ID:38853501
大小:311.32 KB
页数:51页
时间:2019-06-20
《TransactSQL编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、TransactSQL编程TransactSQL简介ANSISQL的不足缺乏逻辑控制结构不支持对SQLServer属性的控制TransactSQL(简称T-SQL)是对ANSISQL的扩充,增加了一些Microsoft专用扩展,是一种SQL方言提供了编写结构程序的能力T-SQL批处理由一个或多个T-SQL命令构成SQLServer将这些命令作为一个整体执行,如果发生了错误,将会取消批处理中所有T-SQL命令的操作T-SQL批处理的构成声明变量[可选]DECLARE@变量名变量数据类型程序体SQL命令T-SQL扩展命令,如流程控制命令程序结束GOT-SQL变量用DECLARE命令
2、声明数据类型,包括CreateTable语句中可以使用的所有数据类型,以及table和SQLVariant数据类型。Numbers,Dates,Characters,Binary,UniqueIdentifiers(GUID),SQLVariants,Image和Text,Table,Cursor,User-defined变量的作用域和默认值作用域:当前批处理默认值:空值变量的例子:DECLARE@TestINT,@Test2VARCHAR(20)变量的赋值与显示使用SET命令SET@变量名=<值表达式>使用SELECT命令SELECT@变量名=目标表达式,…FROM表名显示变
3、量数据SELECT@变量名或常量,…PRINT@变量名或常量批处理的例子DECLARE@TestINT,声明变量@TestTwoNVARCHAR(25)SELECT@Test,@TestTwoSET@Test=1给变量赋值SET@TestTwo=‘avalue’SELECT@Test,@TestTwo显示变量的数据Go批处理结束SELECT@TestasBatchTwo,@TestTwo批处理的例子(续)DECLARE@REGIONIDINT,@REGIONDESCRIPTIONNCHAR(20),@CONDITIONINTUSENorthwindSET@CONDITION=1
4、SELECT@REGIONID=REGIONID,@REGIONDESCRIPTION=REGIONDESCRIPTIONFROMREGIONWHEREREGIONID=@CONDITIONSELECT@REGIONID,@REGIONDESCRIPTIONGO执行批处理可以在查询分析器中打开一个.sql脚本文件,并通过按下F5键或者选择“查询”“执行”菜单项来执行一个SQL脚本程序中的全部批处理。可以修改Windows的文件设置,以便通过双击一个.sql文件来打开查询分析器。在查询分析器中可以通过突出显示来选择一些命令,并通过按下F5键或者选择“查询”“执行”菜单项来执行
5、这些选定的T-SQL命令。在应用程序中,可以通过使用ADO或者ODBC来提交并执行T-SQL批处理。选择数据库在查询分析器的工具条显示了当前的数据库,也可以使用它来改变当前的数据库。在代码中,可以使用use命令来选定当前的数据库。在批处理中使用use命令可以为它以后的语句指定数据库。DDL命令DDL命令不能与其他T-SQL命令放到一个批处理中。或者说,DDL命令必须单独放到自己的批处理中包括:CreateAlterdelete执行存储过程在SQL批处理中可以使用EXEC命令来调用存储过程语法:EXEC<存储过程名>例子:EXECsp_help格式化T-SQL代码续行无需特殊的续
6、行符号,T-SQL可自动识别语句的开始和结束注释ANSI标准注释由两个短横线打头,到行尾结束的,适合于单行注释C语言风格的注释由/*开始,由*/结束的。适合于多行注释注释的例子/*本程序由ABC编写用于查询地区表的数据*/SELECTREGIONDESCRIPTION--结果列FROMREGION--要查询的表WHEREREGIONID=1--条件GO批处理结束流程控制(一)IFIFCondition(条件表达式)Statement只能对其后的一条语句的执行与否进行控制-即一个if只能控制一条命令。同时,它也没有then,以及用来结束if块的endif命令。‘例子IF1=0PR
7、INT‘LineOne’PRINT‘LineTwo’流程控制(二)BEGIN…END它可将多条命令作为一个整体构成if命令的下一条命令语法:IFConditionBeginMultiplelinesEnd流程控制(三)IF…ELSE与IF类似,ELSE只能对其后的一条语句或者BEGIN…END块的执行与否进行控制语法:IFConditionSinglelineorbegin/endblockofcodeELSESinglelineorbegin/endblockofcode流程控制(四)WH
此文档下载收益归作者所有