34,575
社区成员
发帖
与我相关
我的任务
分享
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[addCards]
@startNo int,
@endNo int,
@newspaper varchar(10),
@payment varchar(10),
@cardType varchar(10),
@years varchar(10),
@unitprice money,
@xzzt tinyint,
@endDate smalldatetime,
@outstr tinyint output
as
begin
declare @cardIndex varchar(10)
declare @cardpsw varchar(10)
declare @strsql varchar(200)
set @cardIndex=@newspaper+@payment+@cardType+@years
begin
if @xzzt=1
@strsql=insert into CardSale(CardId,Cardpsw,jf,endDate) values(@cardIndex+convert(varchar(20),right('0000000'+ltrim(@startNo),7)),@cardpsw,@unitprice,@endDate)--这行有误
else
@strsql=insert into CardSale(CardId,Cardpsw,jf) values(@cardIndex+convert(varchar(20),right('0000000'+ltrim(@startNo),7)),@cardpsw,@unitprice)--有误
end
while @startNo<= @endNo
begin
set @cardpsw=LEFT(LOWER(NEWID()),8)
insert into Cards(cardID,cardpsw,sn,cardIndex,newspaper,payment,cardType,years,unitprice,endDate,xzzt)
values(@cardIndex+convert(varchar(20),right('0000000'+ltrim(@startNo),7)),@cardpsw,@startNo,@cardIndex,@newspaper,@payment,@cardType,@years,@unitprice,@endDate,@xzzt)
exec @strsql --我这样写不知对不对??
set @startNo=@startNo+1
end
if @@error=0
begin
set @outstr=0
end
else
begin
set @outstr=1
end
return @outstr
end
'insert into CardSale(CardId,Cardpsw,jf,endDate) values('+@cardIndex+convert(varchar(20),right('0000000'+ltrim('+@startNo+'),7))'+','+@cardpsw+','+@unitprice+','+@endDate+')'
报错
@strsql='insert into CardSale(CardId,Cardpsw,jf,endDate) values('+@cardIndex+''+convert(varchar(20),right('0000000'+ltrim('+@startNo+'),7))+','+@cardpsw+','+@unitprice+','+@endDate+')'
这行报错
@strsql=insert into CardSale(CardId,Cardpsw,jf,endDate) values(@cardIndex+convert(varchar(20),right('0000000'+ltrim(@startNo),7)),@cardpsw,@unitprice,@endDate)--这行有误
@strsql=insert into CardSale(CardId,Cardpsw,jf) values(@cardIndex+convert(varchar(20),right('0000000'+ltrim(@startNo),7)),@cardpsw,@unitprice)--有误