Tsql 顺序参考号

Tsql 顺序参考号,tsql,sequential,Tsql,Sequential,我有一个表,目前只有两列,因为我正在学习,第一列是Book_skey,这是系统使用IDENTITY函数自动生成的,但是,我想在第二列中创建一个名为BookRef的自动字段,其中第一行是b0000001,下一行是b0000002,以此类推 USE Occupancy DECLARE @BookNumber INT SET @BookNumber = 1 WHILE @BookNumber <= 5000 BEGIN INSERT INTO Book(BookNumber) SELECT

我有一个表,目前只有两列,因为我正在学习,第一列是Book_skey,这是系统使用IDENTITY函数自动生成的,但是,我想在第二列中创建一个名为BookRef的自动字段,其中第一行是b0000001,下一行是b0000002,以此类推

USE Occupancy

DECLARE @BookNumber INT
SET @BookNumber = 1
WHILE @BookNumber <= 5000

BEGIN
INSERT INTO Book(BookNumber)
SELECT @BookNumber
SET @BookNumber = @BookNumber + 1

END
使用占用率
声明@BookNumber INT
设置@BookNumber=1

而@BookNumber只需使用计算列即可

CREATE TABLE Book (
    Book_skey       int IDENTITY(1,1)
   ,BookRef         as ('B' + RIGHT(CONVERT(CHAR(9), (100000000 + BookNumber)),8))
   ,BookNumber      int
)

SET NOCOUNT ON

DECLARE @BookNumber INT
SET @BookNumber = 1
WHILE @BookNumber <= 5000
  BEGIN
    INSERT INTO Book(BookNumber)
    SELECT @BookNumber

    SET @BookNumber = @BookNumber + 1
END

SELECT * FROM Book
CREATE TABLE Book(
Book_skey内部标识(1,1)
,BookRef as('B'+右(转换(字符(9),(100000000+书号)),8))
,书号int
)
不计较
声明@BookNumber INT
设置@BookNumber=1

而@BookNumber与
Book_skey
BookRef
之间有什么区别?为什么需要两个标识符?
BookRef
本质上就是
B
+Book_______________________________________________?难道你不能直接从
Book\u skey
中计算出来吗<代码>选择“B”+右('0000000'+CAST(Book_skey AS VARCHAR(8)),8)
老实说,我不知道,Martin,我是SQL新手,我被要求填充一个表,这就是我得到的。
身份
不保证是连续的。如果可能,出于并发性的原因,应该避免该要求。