自定义表类型参数的存储过程的调试技巧
来源:互联网 发布:三了个七 淘宝买家秀 编辑:程序博客网 时间:2024/05/17 17:56
调试方法很简单,可能就是一时没有想到,记录到自己博客中,希望能与大家分享。
可以放一些测试数据给临时表,再将临时表的数据插入到表类型的参数中,传入存储过程进行调试。
-- 表类型如下:
USE [PX_PrjManage] GO CREATE TYPE [dbo] . [SaveGHTData] AS TABLE ( [CT_ProNO] [int] NOT NULL, [CT_WorkNO] [int] NOT NULL, [CT_CPA] [decimal] ( 18 , 2 ) NULL, [CT_Operator] [varchar] ( 50 ) NULL, [CT_State] [int] NULL, [CT_Version] [int] NULL ) GO
--存储过程如下:
ALTER PROCEDURE [dbo] . [SaveGHTData] ( @ProjType varchar ( 10 ), @GHTData dbo . SaveGHTData Readonly ) AS BEGIN declare @tableName varchar ( 100 ), @SQL nvarchar ( 500 ) CREATE TABLE #r ( CT_ProNO int , CT_WorkNO int , CT_CPA decimal ( 18 , 2 ), CT_Operator varchar ( 50 ), CT_State int , CT_Version int ) if @ProjType = 'HT' begin SET @tableName = 'dbo.CDMS_ContractInfo'; END if @ProjType = 'GS' BEGIN SET @tableName = 'dbo.CDMS_ConEstimate' ; END if @ProjType = 'TZ' BEGIN SET @tableName = 'dbo.CDMS_ConInvestment' ; END begin transaction BEGIN insert into #r select * from @GHTData set @SQL = ' delete from ' + @tableName + ' where CT_WorkNO in (select CT_WorkNO from #r) and CT_ProNO=(select top 1 CT_ProNO from #r)' ; exec ( @SQL ) exec ( ' insert into ' + @tableName + '(CT_Guid,CT_ProNO,CT_WorkNO,CT_CPA,CT_UpdateDate,CT_Operator,CT_State,CT_Version) select NEWID(),CT_ProNO,CT_WorkNO,CT_CPA,convert(varchar(24),getdate(),120),CT_Operator,CT_State,CT_Version from #r ' ) drop table #r END if ( @@error <> 0 ) rollback transaction else commit transaction if ( @@error > 0 ) return - 1 else return 1 END
--调试代码如下:
CREATE TABLE #r ( CT_ProjectNO varchar ( 20 ), CT_WorkNO varchar ( 20 ), CT_CPA decimal ( 18 , 2 ), CT_UpdateDate varchar ( 50 ), CT_Operator varchar ( 50 ), CT_State int , CT_Version int ) declare @testtbl dbo . SaveGHTData insert into #r select '1' , '1' , 1800.00 , CT_UpdateDate = convert ( varchar ( 24 ), getdate (), 120 ), 'ABC' , 2 , 2 insert into @testtbl select * from #r ; drop table #r exec dbo . SaveGHTData 'GS' , @testtbl
- 自定义表类型参数的存储过程的调试技巧
- 包含表值类型参数的存储过程调试方法
- 存储过程参数Text类型的长度
- 修改存储过程的指定参数类型
- oracle11g plsql调试存储过程卡死的处理技巧
- Oracle 中调试、调用(带参数的)存储过程
- 调试带返回参数的存储过程注意事项
- 如何得到SQL存储过程的参数及其类型
- Oracle复合类型参数的存储过程以及JDBC调用
- 用JDBC给存储过程传递数组类型的参数
- oralce 存储过程传入 record 类型的参数??
- Java调用Oracle集合类型输出参数的存储过程
- Java调用Oracle集合类型输出参数的存储过程
- Sql Server存储过程数组类型参数的变通方法
- Oracle复合类型参数的存储过程以及JDBC调用
- oracle存储过程,IN OUT 类型的参数
- ibatis调用mysql带OUT类型参数的存储过程
- java调用oracle存储过程的自定义类型(可变数组)。
- java基础
- 一些平时遇到的bug总结
- 对apache中并发控制参数prefork理解和调优
- LevelDb介绍 .
- 如何添加Samba用户
- 自定义表类型参数的存储过程的调试技巧
- MediaInfo编程指南
- Mybatis c3p0 整合
- CLOSE_WAIT问题解决
- ODBC example
- Java Source 根据输入 ftp 地址 账号 密码 路径 读取提供路径下的文件
- 实时服务器框架开发(一)
- 自动创建Excel sheet页索引的办法
- jquery 循环读取 table中的内容