declare @P1 int
set @P1=11
exec sp_prepexec @P1 output, NULL, N'DECLARE @RET INT
BEGIN TRAN
INSERT INTO 门诊_发票信息表(发票编号,门诊号,记帐代码,病人标识,姓名,收费日期,收费时间,收费工号,工作组号,废票张数,处方张数,支付方式,支付金额,记帐金额,舍入金额 ,个人帐户 ,减免金额 ,发票状态,缴款状态,印刷发票,原发票号,报销费用01,报销费用02,报销费用30,自费费用01) VALUES(''0000000344'',''16841422'',''10'',''100000F000'',''汤聪  '',''20120810'',''092825'',''0000'',''MZ'',0,1,''0'',4031.90,0.00,0.00,0.00,0.00,''2'',''0'',368,NULL,15.39,14.80,4000.00,1.71)
IF @@ERROR <> 0 GOTO ERR
UPDATE 编码_门诊发票编号 SET 发票编号=发票编号+1,印刷发票=印刷发票+1 WHERE 收费工号=''0000''
IF @@ERROR <> 0 GOTO ERR
DELETE FROM 门诊_处方临时帐  WHERE 处方编号=615954
IF @@ERROR <> 0 GOTO ERR
INSERT INTO 门诊_处方分类帐(发票编号,处方编号,收费日期,收费时间,收费工号,工作组号,门诊号,记帐代码,病人标识,挂号编号,挂号代码,挂号科室,医生科室,医生工号,处方金额,药品金额,自费金额,费用01,费用02,费用30) VALUES(''0000000344'',615954,''20120810'',''092825'',''0000'',''MZ'',''16841422'',''10'',''100000F000'',''0000000343'',''010'',''01010001'',''01010001'',''0000'',4031.90,31.90,1.71,17.10,14.80,4000.00)
IF @@ERROR <> 0 GOTO ERR
INSERT INTO 门诊_发票处方08 (处方编号,门诊号,挂号编号,挂号代码,挂号科室,医生科室,医生工号,发票编号,收费日期,药房代码,草药帖数) VALUES(615954,''16841422'',''0000000343'',''010'',''01010001'',''01010001'',''0000'',''0000000344'',''20120810'',''02020001'',NULL)
IF @@ERROR <> 0 GOTO ERR
INSERT INTO 门诊_发票明细08 (处方编号,处方序号,类别,代码,名称,规格,单位,单价,数量,金额,报销标志,自费金额,项目科室,减免金额,特批自理比例,特批标志,外部编号) VALUES(615954,1,30,''330702002'',''肺癌根治术'',''次'',''次'',2800.00,1,2800.00,''1'',0,'''',0,0,'''',''615954'')
IF @@ERROR <> 0 GOTO ERR
INSERT INTO 门诊_发票明细08 (处方编号,处方序号,类别,代码,名称,规格,单位,单价,数量,金额,报销标志,自费金额,项目科室,减免金额,特批自理比例,特批标志,外部编号) VALUES(615954,2,30,''330702015'',''肺包虫病内囊摘除术'',''次'',''次'',1200.00,1,1200.00,''1'',0,'''',0,0,'''',''615954'')
IF @@ERROR <> 0 GOTO ERR
INSERT INTO 门诊_发票明细08 (处方编号,处方序号,类别,代码,名称,规格,单位,单价,数量,金额,报销标志,自费金额,项目科室,减免金额,特批自理比例,特批标志,外部编号) VALUES(615954,3,01,''080102020'',''布洛芬缓释胶囊'',''300mg*20'',''盒'',17.10,1,17.10,''2'',1.71,''02020001'',0,0,'''',''615954'')
IF @@ERROR <> 0 GOTO ERR
INSERT INTO 门诊_发票明细08 (处方编号,处方序号,类别,代码,名称,规格,单位,单价,数量,金额,报销标志,自费金额,项目科室,减免金额,特批自理比例,特批标志,外部编号) VALUES(615954,4,02,''570101010'',''血脂康胶囊'',''0.3g*12'',''盒'',14.80,1,14.80,''1'',0,''02020001'',0,0,'''',''615954'')
IF @@ERROR <> 0 GOTO ERR
EXECUTE @RET=MZ_YP_ADDPYD ''16841422'',''汤聪  '',''男'',''19891215'',''10'',''100000F000'',''01010001'',615954,''20120810'',''092825'',''0000000344'',''0000'',''02020001'',2,0,''1''
IF @RET<>0 GOTO ERR
IF @@ERROR <> 0 GOTO ERR
EXECUTE MZ_YP_UPDATEYFCK ''02020001'',2,1
IF @@ERROR <> 0 GOTO ERR
EXECUTE @RET=MZ_YP_ADDPYMX ''02020001'',''10'',''100000F000'',''1'',615954,3,01,''080102020'',''布洛芬缓释胶囊'',''300mg*20'',''盒'',3,''bid'',''口服'',17.1,1,17.1,''2'',''1'',NULL,NULL,NULL,''每次3mg''
IF @@ERROR <> 0 GOTO ERR
IF @RET<>0 GOTO ERR
IF @@ERROR <> 0 GOTO ERR
EXECUTE @RET=MZ_YP_ADDPYMX ''02020001'',''10'',''100000F000'',''1'',615954,4,02,''570101010'',''血脂康胶囊'',''0.3g*12'',''盒'',3,''q2h'',''口服'',14.8,1,14.8,''1'',''1'',NULL,NULL,NULL,''每次3g''
IF @@ERROR <> 0 GOTO ERR
IF @RET<>0 GOTO ERR
IF @@ERROR <> 0 GOTO ERR
COMMIT TRAN
GOTO QUIT
ERR:ROLLBACK TRAN
RAISERROR (''ABCDEFGHIJKLMNOPQRSTUVWXYZ'',15,1)
QUIT:
'
select @P1

解决方案 »

  1.   

      不是自己开发的!. 这个是系统扩展存储过程,不知道这个过程干嘛用的!.
      在网上收索了下,大概意思是处理SQL并发的!
      

  2.   


    更正,重新检查了一下sp_helptext sp_prepexec--(server internal)
    服务器内部存储过程。http://technet.microsoft.com/zh-cn/library/ff946028
      

  3.   

    系统内部的一个 扩展存储过程。 只是知道在执行 动态SQL时,SQLSERVER后台会自动调用该 存储过程。
      

  4.   

    sp_prepexec 结合了 sp_prepare 和 sp_execute 的功能。 
    是个系统存储过程。
    来者已经给出了官方说明地址。