首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用TSQL在While循环中增加NVarchar值?

如何使用TSQL在While循环中增加NVarchar值?
EN

Stack Overflow用户
提问于 2013-03-19 06:42:25
回答 3查看 17K关注 0票数 4

我试图增加这样一个变量的nvarchar值;

代码语言:javascript
复制
    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时间的值?

我要它像'abcdef-1','abcdef-2','abcdef-3',我只想包括'-‘之后的数字。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-19 06:58:17

试试这个..。

代码语言:javascript
复制
    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
票数 7
EN

Stack Overflow用户

发布于 2013-03-19 06:43:37

set移到while里面?

代码语言:javascript
复制
WHILE(@i<>@Quantity)
    BEGIN
    set @BookSerialNo = cast(@BookSerialNo as nvarchar(50)) +'-' + 
                        cast(@i as nvarchar(50));
    ....
    SET @i = @i+1;
    END
票数 4
EN

Stack Overflow用户

发布于 2013-03-19 06:56:03

假设@BookSerialNo数据类型是nvarchar

代码语言:javascript
复制
Try this

WHILE(@i<>@Quantity)
BEGIN
    set @BookSerialNo = @BookSerialNo +'-' + CONVERT(NVARCHAR(50),@i);
    ....
    SET @i = @i+1;
END
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15493065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档