0

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

USE Occupancy

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

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

END

这可以做到吗?

谢谢

韦恩

4

1 回答 1

0

您只需要使用计算列。

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
于 2013-03-15T22:24:53.697 回答