(1)批处理..................................................................................................................................2(2)变量......................................................................................................................................3(3)逻辑控制..............................................................................................................................5(4)函数................................................................................................................................7(4.1)系统函数...................................................................................................................7(4.2)自定义函数........................................................................................................13(5)高级查询............................................................................................................................23(6)存储过程............................................................................................................................35(7)游标....................................................................................................................................36(8)触发器................................................................................................................................50SQLServer数据库的高级操作(1)批处理(2)变量(3)逻辑控制(4)函数(5)高级查询*/(1)批处理将多条SQL语句作为一个整体去编译,生成一个执行计划,然后,执行!理解批处理的关键在于"编译",对于由多条语句组成的一个批处理,如果在编译时,其中,有一条出现语法错误,将会导致编译失败!createtablet(aint,bint)--注释--如果多行注释中包含了批处理的标识符go--在编译的过程中代码将会被go分割成多个部分来分批编译--多行注释的标记将会被分隔而导致编译出错--以下几条语句是三个非常经典的批处理--你猜一下会添加几条记录!/*insertintotvalues(1,1)go*/insertintotvalues(2,2)go/*insertintotvalues(3,3)*/go--查询看添加了几条记录select*fromttruncatetablet(2)变量--全局变量SQLServer中全局变量由系统定义、系统维护,用户一般仅可对其进行读取!--查看SQLServer版本print@@version--服务器名称print@@servername--系统错误编号insertintotvalues('a','a')print@@errorinsertintotvalues('a','a')if@@error=245print'Error'--SQLServer版本的语言信息print@@LANGUAGE--一周的第一天从星期几算起print@@datefirst--CPU执行命令所耗费时间的累加print@@cpu_busy--获取最近添加的标识列的值createtablett(aintidentity(3,10),bint)insertintott(b)values(1)print@@identityselect*fromtt--局部变量局部变量由用户定义,仅可在同一个批处理中调用和访问declare@intAgetinyintset@intAge=12print@intAgedeclare@strNamevarchar(12)select@strName='state'print@strNameselectau_lname,@strNamefromauthors(3)逻辑控制--IF条件判断declare@iintset@i=12if(@i>10)begin--{print'Dadadada!'print'Dadadada!'end--}elsebeginprint'XiaoXiao!'print'XiaoXiao!'end--While循环控制declare@iint;set@i=12;print@ireturn;while(@i<18)beginprint@i;set@i=@i+1;if@i<17continue;if@i>15break;end;--CASE分支判断selectau_lname,state,'犹他州'fromauthorswherestate='UT'selectau_lname,state,'密西西比州'fromauthorswherestate='MI'selectau_lname,state,'肯塔基州'fromauthorswherestate='KS'selectau_lname,state,casestatewhen'UT'then'犹他州'when'MI'then'密西西比州'when'KS'then'肯塔基州'when'CA'then'加利福利亚'elsestateendfromauthors(4)函数(4.1)系统函数--获取指定字符串中左起第一个字符的ASC码printascii('...