当前位置: 代码迷 >> Sql Server >> sqlsvser存储过程解决方案
  详细解决方案

sqlsvser存储过程解决方案

热度:92   发布时间:2016-04-27 11:33:44.0
sqlsvser存储过程
前辈们小菜鸟求帮忙
MarketProduct 商品表
其中有个字段叫
kind 1代表百货 2 代表服务

InotoneOrderBillMain 订单表
其中有些字段 (字段比较多 我就不全写)
id 订单编号
ordercode 订单编码
kaishidate 开始时间
jieshudate 时间
randomcode 随机数
等等
这个随机数我需要在数据库里面生成一个6位不重复的随机数
在订单表里面插入数据的时候
我要判断kind 
kind =1 就不需要插入这个随机数
如果kind=2我就要把这个自动生成的随机数插入到randomcode 字段


我需要这样的一个存储过程
希望前辈都来帮忙,菜鸟快哭了
下面代码是我写的一个存储过程但是没有判断和生成随机数的

ALTER PROCEDURE [dbo].[Inotone_Add_InotoneOrderBillSub]
  (
  @RenewalsID VARCHAR(50) ,
  @OrderCode CHAR(20) ,
  @PurchaseDate DATETIME ,
  @ProductCode VARCHAR(50) ,
  @ProductNum INT ,
  @IsTime INT ,
  @kaishiDate DATETIME ,
  @jieshuDate DATETIME ,
  @IsValid INT ,
  @OrderDes VARCHAR(500),
 @RandomCode INT, --生成的随机数
  )
AS 
  BEGIN
  SET NOCOUNT ON  
  INSERT INTO InotoneOrderBillSub
  ( OrderBillSubID ,
  RenewalsID ,
  OrderCode ,
  PurchaseDate ,
  ProductCode ,
  ProductNum ,
  IsTime ,
  kaishiDate ,
  jieshuDate ,
  IsValid ,
  OrderDes
  )
  VALUES ( NEWID() ,
  @RenewalsID ,
  @OrderCode ,
  @PurchaseDate ,
  @ProductCode ,
  @ProductNum ,
  @IsTime ,
  @kaishiDate ,
  @jieshuDate ,
  @IsValid ,
  @OrderDes
  )
   
  IF @@ROWCOUNT > 0 
  BEGIN
  SELECT 1
  END
   
  ELSE 
  BEGIN
  SELECT -1
  END

  SET NOCOUNT OFF
  END



------解决方案--------------------
SQL code
ALTER PROCEDURE [dbo].[Inotone_Add_InotoneOrderBillSub]  (  @RenewalsID VARCHAR(50) ,  @OrderCode CHAR(20) ,  @PurchaseDate DATETIME ,  @ProductCode VARCHAR(50) ,  @ProductNum INT ,  @IsTime INT ,  @kaishiDate DATETIME ,  @jieshuDate DATETIME ,  @IsValid INT ,  @OrderDes VARCHAR(500),   @kind int --判断类型   )AS    BEGIN  SET NOCOUNT ON     declare @RandomCode INT --生成的随机数  set @randomcode=RAND(100)  if(@kind=1)    begin      INSERT INTO InotoneOrderBillSub  ( OrderBillSubID , RenewalsID , OrderCode , PurchaseDate , ProductCode , ProductNum , IsTime , kaishiDate , jieshuDate , IsValid  OrderDes )  VALUES ( NEWID() , @RenewalsID , @OrderCode , @PurchaseDate , @ProductCode , @ProductNum , @IsTime , @kaishiDate , @jieshuDate , @IsValid , @OrderDes  )    end  else    begin  INSERT INTO InotoneOrderBillSub  ( OrderBillSubID , RenewalsID , OrderCode , PurchaseDate , ProductCode , ProductNum , IsTime , kaishiDate , jieshuDate , IsValid , OrderDes,randcode  )  VALUES ( NEWID() , @RenewalsID , @OrderCode , @PurchaseDate , @ProductCode , @ProductNum , @IsTime , @kaishiDate , @jieshuDate , @IsValid ,  @OrderDes,@randcode  )   end   IF @@ROWCOUNT > 0    BEGIN  SELECT 1  END      ELSE    BEGIN  SELECT -1  END  SET NOCOUNT OFF  END
  相关解决方案