0

学習しているため、現在2列しかないテーブルがあります。最初の列はBook_skeyであり、これはIDENTITY関数を使用してシステムによって自動的に生成されますが、2番目の列で実行したいのは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 に答える