资源描述:
《第9章 transact-sql程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章transact-sql程序设计execsp_addtypetest_add,'varchar(10)','notnull'declare@int_varintselect@int_var=12/*给@int_var赋值*/select@int_var/*将@int_var的值输出到屏幕上*/在一条语句中可以同时对几个变量进行赋值,例如,declare@lastnamechar(8),@firstnamechar(8),@birthdatedatetimeselect@lastname='smith',@firstname='david',@birthdat
2、e='1985-2-20'select@lastname,@firstname,@birthdate【例9-1】使用select语句从customer表中检索出顾客编号为c0002的行,再将顾客的名字赋给变量@customer。declare@customervarchar(40),@curdatedatetimeselect@customer=customer_name,@curdate=getdate()fromcustomerwherecustomer_id='c0002'【例9-2】将sell_order表中的transporter_id列值为“t001”
3、、goods_id列值为“g00003”的order_num列的值赋给局部变量@order_num。declare@order_numfloatupdatesell_orderset@order_num=order_num*2/*@order_num为局部变量,order_num为sell_order表中的列名称*/wheretransporter_id='t001'andgoods_id='g00003'【例9-3】计算employee表的记录数并赋值给局部变量@rows。declare@rowsintset@rows=(selectcount(*)fromem
4、ployee)select@rows【例9-4】使服务器产生服务,并显示错误号。raiserror('miscellaneouserrormessage',16,1)/*产生一个错误*/if@@error<>0select@@erroras'lasterror'【例9-5】捕捉例9-4中服务器产生的错误号,并显示出来。declare@my_errorintraiserror('miscellaneouserrormessage',16,1)select@my_error=@@errorif@my_error<>0select@my_erroras'lasterro
5、r'【例9-6】使用@@spid返回当前用户进程的id。select@@spidas'id',system_useras'loginname',useras'username'【例9-7】在sales数据库中创建jobs表,并在表中插入带有identity列的行,并且使用@@identity来显示新行中所用的identity值。createtablejobs([job_id][smallint]identity(1,1)notnull,[job_desc][varchar](50)collatechinese_prc_ci_asnotnull,[min_lvl][
6、tinyint]notnull,[max_lvl][tinyint]notnull)on[primary]insertintojobs(job_desc,min_lvl,max_lvl)values('accountant',12,125)select@@identityas'identity'【例9-8】创建两个过程:innerproc和outerproc。outerproc过程用来调用innerproc过程,innerproc过程用来显示@@nestlevel的设置。①定义innerproc为内嵌过程。createprocedureinnerprocassel
7、ect@@nestlevelas'innerlevel'go②定义outerproc为外层过程。createprocedureouterprocasselect@@nestlevelas'outerlevel'execinnerprocgo③执行outerproc。executeouterprocgo【例9-9】使用“+”将goods表中高于9000元的商品价格增加15元。selectgoods_name,unit_price,(unit_price+15)asnowpricefromgoodswhereunit_price>9000【例9-10】从表depart
8、ment中