资源描述:
《sql常用的过程代码汇集.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、[存储过程]定义TRANSACT-SQL1.创建CREATEPROCEDURE语法:CRATEPROCUDUREprocedure_name[:number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,…n][WITH{RECOMPILE
2、EBCRYPTION
3、RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[…n]2.执行过程EXECUTEstored_procedure语法:[E
4、XECUTE]{[@return_status=]{procedure_name[:number]
5、@procedure_name_var}[[@parameter=]{value
6、@variable[OUTPUT]
7、[DEFAULT]}[...N][WITHRECOMPILE]--1#CREATEprocedureauto_kf_ffxx-------酒店管理系统的自动计算房费的过程(@c_code_zvarchar(30)--主账单)asbegin/*自动计算房费过程*/beginTransactionauto_kf_ff
8、xxdeclare@rzsjdatetime,--入住时间--------------------------------定义局变量@tempsjdatetime,--临时离开时间[当前]@dec_iddecimal(18,0),@c_code_xfxmvarchar(30),@dec_tsdecimal(18,4),--天数@first_ddecimal(18,4),--第一天@end_ddecimal(18,4),--最后一天@kflbvarchar(30),--开房类别@roomvarchar(30)--房间号decla
9、reffxxdetailcursorfor--定义游标selectDEC_ID,c_code_xfxm,dt_xfsj,c_code_roomfromT_kf_xfmxwherec_flag_day='1'andc_codein(selectc_codefromT_kf_xfmainwheredec_parentin(selectdec_idfromT_kf_xfmainwherec_code=@c_code_zandI_layer=0))openffxxdetail---------------打开游标FetchnextFr
10、omffxxdetailinto@dec_id,@c_code_xfxm,@rzsj,@room-----------------提取-------Fetchfirstfromfetch_maxphinto@temp--提取Set@tempsj=getdate()--------------------------------set设置局变量的值while@@Fetch_Status=0-----beginPRINT'id编号'-------单个输出显示PRINT@DEC_IDPRINT'消费项目编号'PRINT@C_CODE
11、_XFXMPRINT'入住时间'PRINT@RZSJPRINT'入住房间号'PRINT@ROOM--取得房间开房类型//用SELECT语句给局变量值赋值selecttop1@kflb=c_code_kflbfromT_kf_rzroomwherec_code_rz=@c_code_zandC_code_room=@roomif@kflb='0001'--全天房begin--计算天数--更新消费数量select@dec_ts=DateDiff(day,@rzsj,@tempsj)---用Select调置值PRINT'粗略计算天数
12、'PRINT@DEC_TSPRINT'----------------'if@dec_ts>1beginset@dec_ts=@dec_ts-1end--加上第一天所占用的时段费用------------------------------------convert转换类型函数select@first_d=sum(dec_rate)fromT_kf_gzsz_mainwhereconvert(char,dt_jzsj,108)>=convert(char,@rzsj,108)PRINT'第一天占用时段'PRINT@FIRST_
13、Dif@first_disnullset@first_d=0--加上最后一天所占用的时段费用select@end_d=sum(dec_rate)fromT_kf_gzsz_mainwhereconvert(char,dt_kssj,108)<=convert(char,@te