1つのシーケンスを使用して各テーブルの初期値1からシーケンス番号を生成する可能性はありますか(すべてのテーブルはIDで1つのシーケンスを使用して開始する必要があります)なぜシーケンスが必要なのですか?SQL Server 2012の新機能シーケンス
Iスクリプト下に使用している、
--Create the Test schema
CREATE SCHEMA Test ;
GO
-- Create a table
CREATE TABLE Test.Orders
(OrderID int PRIMARY KEY,
Name varchar(20) NOT NULL,
Qty int NOT NULL);
GO
-- Create a sequence
CREATE SEQUENCE Test.TestSequence
START WITH 1
INCREMENT BY 1 ;
GO
-- Insert three records
INSERT Test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.TestSequence, 'One', 2) ;
INSERT test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.TestSequence, 'Two', 1) ;
INSERT test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.TestSequence, 'Three', 1) ;
GO
-- View the table
SELECT * FROM Test.Orders ;
GO
CREATE TABLE Test.Employee
(EmpId int PRIMARY KEY,
EmpName varchar(20) NOT NULL,
DeptId int NOT NULL,
Sal Decimal(15,2));
GO
insert into Test.Employee (EmpId,EmpName,DeptId,Sal) values
(NEXT VALUE FOR Test.TestSequence,'One',1,45000),
(NEXT VALUE FOR Test.TestSequence,'Two',2,54000),
(NEXT VALUE FOR Test.TestSequence,'Three',3,60000),
(NEXT VALUE FOR Test.TestSequence,'Four',2,75000)
INSERT Test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.TestSequence, 'Four', 5) ;
insert into Test.Employee (EmpId,EmpName,DeptId,Sal) values
(NEXT VALUE FOR Test.TestSequence,'Five',1,90000)
select * from Test.Orders
select * from Test.Employee
O/P: -
OrderID, Name, Qty
1 One 2
2 Two 1
3 Three 1
8 Four 5
EmpId EmpName DeptId Sal
4 One 1 45000.00
5 Two 2 54000.00
6 Three 3 60000.00
7 Four 2 75000.00
9 Five 1 90000.00
期待結果: - OrderIdで= 1,2,3,4 ....
同じシーケンスを使用して別のテーブルの番号を生成しています。しないでください。別のテーブルに異なる番号を使用する場合は、別のシーケンスを使用します。 –