2

SQL Server 2012 (デナリ) には、新しい機能Sequenceがあります。以下のプログラムを検討してください

/****** Create Sequence Object ******/
CREATE SEQUENCE GenerateSequence
START WITH 1
INCREMENT BY 1;

/****** Create a test Table ******/
Create TABLE tblTest
(
ID int NOT NULL PRIMARY KEY,
Name varchar(100) NOT NULL,
Age int NOT NULL
);

/****** Insert Some Records ******/
INSERT INTO tblTest(ID, Name, Age)
VALUES (NEXT VALUE FOR GenerateSequence, 'Name1',10),
(NEXT VALUE FOR GenerateSequence, 'Name2',20),
(NEXT VALUE FOR GenerateSequence, 'Name3',30),
(NEXT VALUE FOR GenerateSequence, 'Name4',40);

/****** Display result******/
SELECT * FROM tblTest;

出力

ID Name     Age
1  Name1    10
2  Name2    20
3  Name3    30
4  Name4    40

これの代わりに、次のような ID 列を使用できます

Create TABLE tblTest
(
ID int NOT NULL PRIMARY KEY Identity,
Name varchar(100) NOT NULL,
Age int NOT NULL
);

そして、次のように入力できます

INSERT INTO tblTest(Name, Age)
VALUES ('Name1',10),
VALUES ('Name2',20)... 

など、同じ出力を得る

それでは、シーケンスを使用することで、どのような利点が得られるのでしょうか?

4

1 に答える 1

2

これは、複数のテーブル間で ID を一意に保つために、異なるデータベース テーブル間で使用できます。

SQL シーケンスを見て、SQL Server 2011 で数列を作成する

SQL Server のシーケンス オブジェクトは、SQL テーブルの ID 列と同様に一連の番号を生成します。ただし、シーケンス番号の利点は、シーケンス番号オブジェクトが単一の SQL テーブルに限定されないことです。

于 2010-12-09T04:58:49.887 に答える