我试图增加像这样的变量的nvarchar值;
declare @i int
set @i = 0
-- I want a book `@BookSerialNo` to be increment like e.g abcde-1, abcde-2
set @BookSerialNo = CAST(@BookSerialNo +'-' + @i as nvarchar(50));
WHILE(@i<>@Quantity)
BEGIN
INSERT INTO Library.BookDetail
(
BookId,
BookSerialNo,
CreatedBy,
CreateDate,
UpdateDate,
Updateby
)
VALUES
(
@BookId,
@BookSerialNo,
@CreatedBy,
@CreatedDate,
@UpdatedDate,
@UpdatedBy
)
SET @i = @i+1;
END
所以,我的问题是,
如何在循环中增加@BookSerialNo
eache time的值?
我希望它像例如'abcdef-1','abcdef-2','abcdef-3',我只想在' - '之后加上数字。
答案 0 :(得分:7)
试试这个..
set @BookSerialNo = @BookSerialNo +'-0';
WHILE(@i<>@Quantity)
BEGIN
INSERT INTO Library.BookDetail
(
BookId,
BookSerialNo,
CreatedBy,
CreateDate,
UpdateDate,
Updateby
)
VALUES
(
@BookId,
@BookSerialNo,
@CreatedBy,
@CreatedDate,
@UpdatedDate,
@UpdatedBy
)
SET @i = @i+1;
--increment the serialno also
SET @BookSerialNo = SUBSTRING(@BookSerialNo, 0, CHARINDEX('-',@BookSerialNo)+1);
set @BookSerialNo = @BookSerialNo + CAST (@i as nvarchar(50));
END
答案 1 :(得分:2)
只需移动set
内的while
?
WHILE(@i<>@Quantity)
BEGIN
set @BookSerialNo = cast(@BookSerialNo as nvarchar(50)) +'-' +
cast(@i as nvarchar(50));
....
SET @i = @i+1;
END
答案 2 :(得分:0)
假设@BookSerialNo数据类型为nvarchar
Try this
WHILE(@i<>@Quantity)
BEGIN
set @BookSerialNo = @BookSerialNo +'-' + CONVERT(NVARCHAR(50),@i);
....
SET @i = @i+1;
END