if exists(select 1 from sysobjects where name='P_PreOrderInfo')

drop Procedure P_PreOrderInfo

go

Create Procedure P_PreOrderInfo 

   @RefSheetID varchar(64),

   @OutShopID varchar(64),

   @CustomID varchar(64),

   @InShopID varchar(64),

   

   @Operator varchar(64),

   @Name varchar(64),

   @Tax varchar(64),

   @CertType varchar(64) ,  

   @CertNo varchar(64) ,  

   @Mobile varchar(64),

   @LinkMan varchar(64),

   @LinkTele varchar(64),

   @Address varchar(64),

   @Notes varchar(64),

   

   @GoodsID varchar(2000),

   @BarCodeID varchar(2000),

   @CustomPrice varchar(2000),

   @PKNum varchar(2000),

   @PKName varchar(2000),

   @PKSpec varchar(2000)

--   ,@a varchar(8000) out

WITH ENCRYPTION

AS BEGIN

  declare @SheetID char(16);

  --select @OutShopID=RationShopID,@CustomID=CustomerID from shop where ID=@ShopID

  select @SheetID=max(SheetID) from PreCustomerOrder0 where left(sheetID,8)=CONVERT(varchar(100), GETDATE(), 112)

  if @SheetID is null  

  begin

    set @SheetID=CONVERT(varchar(100), GETDATE(), 112)+'00000001'

  end

  else

  begin

    set @SheetID=substring(@SheetID,1,8)+ right('0000000'+convert(varchar(8),convert(int,substring(@SheetID,9,8))+1),8)

  end

  declare @sql varchar(2000)

  set @sql='Insert Into PreCustomerOrder0(  SheetID,RefSheetID,OutShopID,CustomID,InShopID,PurDate,Editor,EditDate,Operator,'+

           'Notes ,[Address],Mobile,LinkTele,LinkMan,CertType,CertNo,Tax,CertName) values('''+

           @SheetID+''','''+@RefSheetID+''','''+@OutShopID+''','+@CustomID+','''+@InShopID+''',getdate(),'''+@Operator+''',getdate(),'''+@Operator

+''','''+

           @Notes+''','''+@Address+''','''+@Mobile+''','''+@LinkTele+''','''+@LinkMan+''','''+@CertType+''','''+

           @CertNo+''','''+@Tax+''','''+@Name+''');';  

   

  declare @tempGoodsID varchar(100)

  declare @tempBarCodeID varchar(100)

  declare @tempCustomPrice varchar(100)

  declare @tempPKNum varchar(100)

  declare @tempPKName varchar(100)

  declare @tempPKSpec varchar(100)

  declare @sql2 varchar(8000)

  set @sql2='';

  while  charindex(',',@GoodsID)>0 

  begin

    set @tempGoodsID=substring(@GoodsID,1,charindex(',',@GoodsID)-1);

    set @GoodsID=substring(@GoodsID,    charindex(',',@GoodsID)+1,    len(@GoodsID)-charindex(',',@GoodsID)    );

    

    set @tempBarCodeID=substring(@BarCodeID,1,charindex(',',@BarCodeID)-1);

    set @BarCodeID=substring(@BarCodeID,charindex(',',@BarCodeID)+1,len(@BarCodeID)-charindex(',',@BarCodeID));

    set @tempCustomPrice=substring(@CustomPrice,1,charindex(',',@CustomPrice)-1);

    set @CustomPrice=substring(@CustomPrice,charindex(',',@CustomPrice)+1,len(@CustomPrice)-charindex(',',@CustomPrice));

    set @tempPKNum=substring(@PKNum,1,charindex(',',@PKNum)-1);

    set @PKNum=substring(@PKNum,charindex(',',@PKNum)+1,len(@PKNum)-charindex(',',@PKNum));

    set @tempPKName=substring(@PKName,1,charindex(',',@PKName)-1);

    set @PKName=substring(@PKName,charindex(',',@PKName)+1,len(@PKName)-charindex(',',@PKName));

    set @tempPKSpec=substring(@PKSpec,1,charindex(',',@PKSpec)-1);

    set @PKSpec=substring(@PKSpec,charindex(',',@PKSpec)+1,len(@PKSpec)-charindex(',',@PKSpec));

    set @sql2=@sql2+'Insert Into PreCustomerOrderItem0(  SheetID,GoodsID,BarCodeID,CustomPrice,PKNum,PKName ,PKSpec) values('''+

           @SheetID+''','''+@tempGoodsID+''','''+@tempBarCodeID+''','+@tempCustomPrice+','+@tempPKNum+','''+@tempPKName+''','''+@tempPKSpec+''');'; 

  

  end 

  --select @a= @sql+@sql2   

  exec(@sql+@sql2)

end 

 go   

  

  

 declare @b varchar(8000);

  Exec P_PreOrderInfo N'P113201605180006','-1','-1','020L06','1','1','2', '0','3','4','1',

  '5','56','7','10140102,','6914032100010,','158.00,',  '1,','F,','1*1,',@b out

  select @b

SqlServer存储过程输出参数的更多相关文章

  1. sqlserver 带输出参数的存储过程的创建与执行

    创建 use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery4') drop proce ...

  2. Oracle存储过程 输出参数赋值异常:“Oracle.DataAccess.Types.OracleString”的类型初始值设定项引发异常。

    场景: 写了一个有返回参数的存储过程,在个另开发人员机器上都正常.其它机器报如题错误.让人郁闷的是,所有调用方都是客户端,根本不存在网上众贴所说的版本不一致问题. 分析: 虽然网上的帖子没有根本解决问 ...

  3. C# - 企业框架下的存储过程输出参数

    output 输出参数 在C# 中的获取方法 新建存储过程 create proc Test @ID int, @maxnum int output as begin declare @num int ...

  4. asp.net 存储过程 输出参数 取不到值

    这是MSDN上的明确解释:当您将 Command 对象用于存储过程时,可以将 Command 对象的 CommandType 属性设置为 StoredProcedure.当 CommandType 为 ...

  5. sql 存储过程 输出参数 输入参数

    1.简单的存储过程 create procedure porc_name as select * from 表 go 调用时: exec proc_name 2. 带参数的存储过程 create pr ...

  6. sqlserver 带输出参数的存储过程

    --创建存储过程create procedure proc_stu@sname varchar(20),@pwd varchar(50),@flag bit outputasif exists(sel ...

  7. C# 调用带输入输出参数的存储过程

    //调用存储过程执行类似于2//select count(*) from userinfo where username=username and pwd=pwd and grade=grade3// ...

  8. asp.net C#操作存储过程读取存储过程输出参数值

    这段时间在做一个价格平台的项目时候,同事让我写一个存储过程.该存储过程是根据查询条件得出一组新数据,并且返回该组数据的总条数,此处的存储过程我用到了分页,其中主要知识点和难点是之前做项目的时候没有用到 ...

  9. SqlDataReader执行带输出参数存储过程 错误分析

    在上一篇随笔:SqlDataReader读取分页数据,pageCount你是肿么了? 遇到了很让人头疼的问题:SqlDataReader执行带输出参数的存储过程总是获取不到输出参数的正确值.这里将解决 ...

随机推荐

  1. Java各个知识点详解总结

    Java基础知识总结 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思 ...

  2. VTC Fsync_out信号分析

    VTC Fsync_out信号分析 1.GUI配置 Vertical position的值289是根据Frame/Field 0 Vertical settings一栏中sync start来设置的. ...

  3. Block Design 小技巧之添加RTL代码到block_design

    Block Design 小技巧之添加RTL代码到block_design 1.首先得打开Block Design,右击RTL文件,才会出现Add module to Block Design选项. ...

  4. 时钟分频方法---verilog代码

    时钟分频方法---verilog代码 本文以SDI播出部分的工程为例,来说明一种时钟分频的写法.SD-SDI工程中播出时钟tx_usrclk为148.5MHz,但tx_video_a_y_in端的数据 ...

  5. nginx http 正向代理

    打开\nginx-1.12.2\conf\nginx.conf, 在http{      } ,大括号内加入 http { #............................. #...... ...

  6. xfce的主题

    debian9默认的丑到无法直视 主题的下载地址 https://www.xfce-look.org/ 个人比较喜欢的几个 BubbleTux Flamebird JacWin10 安装方式 解压到~ ...

  7. 关键两招就解决Wampserver 打开localhost显示IIS7图片问题

    我们在安装集成环境Wampserver之后,有时会遇到一个问题, 打开localhost显示一张IIS7图片,这个问题该如何解决呢,我在网上找了一些说的都很乱,我在这里简单整理了一下解决方法   1  ...

  8. java 菜单 中文 乱码问题解决方案(使用idea/eclipse) swing MenuItem乱码

    java swing MenuItem乱码 2016年12月30日 13:32:08751人阅读 评论(0) 收藏 举报   用java开发一个带有托盘图标的程序, 其它模块的中文显示都是正常的,比如 ...

  9. Python单元测试框架之pytest 1 ---如何执行测试用例

    From: https://www.cnblogs.com/fnng/p/4765112.html 介绍   pytest是一个成熟的全功能的Python测试工具,可以帮助你写出更好的程序. 适合从简 ...

  10. 关于RabbitMQ分布式集群架构

    RabbitMQ分布式集群架构和高可用性(HA) (一) 功能和原理 设计集群的目的 允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行 通过增加更多的节点来扩展消息通信的吞吐量 1 集群配 ...