前辈们小菜鸟求帮忙
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