create proc InsertIntoSXAndSXZ --同时向属性表和属性值表插入数据
(
@SXMingChen varchar(100),
@FLID int,
@SXSFKX int,
@LuRuFangShi int,
@AddManID int,
@AddTime datetime,
@IsDelete int,
@IsJiansuo int,
@SXZMingCheng varchar(100),
@FenGeFu varchar(50)
)
as
begin transaction
declare @count int
declare @SXID int
declare @next int
set @next=1
insert into MLSCShuXing (SXMingChen,FLID,SXSFKX,LuRuFangShi,AddManID,AddTime,IsDelete,IsJiansuo)values(@SXMingChen,@FLID,@SXSFKX,@LuRuFangShi,@AddManID,@AddTime,@IsDelete,@IsJiansuo) select @SXID=SCOPE_IDENTITY()
declare @GeSu int
select @GeSu= dbo.Get_StrArrayLength(@SXZMingCheng,@FenGeFu)
while @next<=@GeSu
begin
insert into MLSCShuXingZhi (ShuXingID,SXZMingCheng,AddManID,AddTime,IsDelete)values(@SXID, dbo.Get_StrArrayStrOfIndex(@SXZMingCheng,@FenGeFu,@next),@AddManID,@AddTime,@IsDelete )
set @next=@next+1
end
select @count=@@error
if(@count=0)
commit transaction
else
rollback transaction
create proc InsertIntoProductAndProductSKU --同时向产品表和产品SKU表插入数据
(
@PBianHao varchar(100),
@PMingCheng varchar(100),
@PMiaoShu varchar(100),
@PXiangXi text,
@PPinPaiID int,
@PPinPaiName varchar(100),
@PShenHe int,
@AddManID int,
@AddTime datetime,
@IsDelete int,
@MinLongJia decimal(18,2),
@DangQianJia decimal(18,2),
@ZheKou decimal(18,1),
@XiaoLiang int,
@ShagnJiaID int,
@KuCunLiang int,
@KuCunJingGaoLiang int,
@GuanJianZi varchar(200),
@JiaRuTuiJian int,
@ShiFouShangJia int,--以上是Product表字段
@ShiChangJia decimal(18,2), --市场价
@SXID varchar(200),--属性ID
)
as
begin transaction
declare @count int --记录错误
declare @PID int --产品ID
begin
insert into MLSCProduct(PBianHao,PMingCheng,PMiaoShu,PXiangXi,PPinPaiID,PPinPaiName,PShenHe, AddManID,AddTime,IsDelete,MinLongJia,DangQianJia,ZheKou,XiaoLiang,ShagnJiaID,KuCunLiang,KuCunJingGaoLiang,GuanJianZi,JiaRuTuiJian,ShiFouShangJia)
values(@PBianHao,@PMingCheng,@PMiaoShu,@PXiangXi,@PPinPaiID,@PPinPaiName,@PShenHe,@AddManID,@AddTime,@IsDelete,@MinLongJia,@DangQianJia,@ZheKou,@XiaoLiang,@ShagnJiaID,@KuCunLiang,@KuCunJingGaoLiang,@GuanJianZi,@JiaRuTuiJian,@ShiFouShangJia)
select @PID=SCOPE_IDENTITY()
insert into MLSCProductSKU (PID,ShiChangJia,SXID,AddManID,AddTime,IsDelete)values(@PID,@ShiChangJia,@SXID,@AddManID,@AddTime,@IsDelete)
end
select @count=@@error
if(@count=0)
commit transaction
else
rollback transaction
俩函数:
Create function [dbo].[Get_StrArrayLength]
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int
set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
create function [dbo].[Get_StrArrayStrOfIndex]
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location=0 select @location=len(@str)+1
return substring(@str,@start,@location-@start)
end