私が作るすべての挿入ステートメントに一意のIDを与えたいので、これは一緒に挿入された行を確認することができます。一意の「挿入ID」が1から始まり、行数がIDENTITY(1,1)
のように1ずつ増加することをお勧めします。SQL Serverのすべての挿入ステートメントに固有のIDを生成する方法はありますか?
IDENTITY
のような簡単な方法はありますか?
CREATE TABLE [dbo].[factTrade]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[insertedID] [int] NOT NULL,
[quantity] [int] NOT NULL,
[price] [decimal](20, 10) NOT NULL
)
INSERT INTO [dbo].[factTrade] ([insertedID], [quantity], [price])
VALUES (1, 6, 2.5), (1, 4, 3.7), (1, 3, 4.1), (1, 7, 8.5),
INSERT INTO [dbo].[factTrade] ([insertedID], [quantity], [price])
VALUES (2, 5, 5.2), (2, 1, 4.6)
uhm、あなたの 'ID'列と' insertedId'の違いは? – Lamak
なぜ、単にDateCreatedカラムを持っていないのですか?これはデフォルトでGETDATE()でNOT NULLのdatetimeカラムになります。それ以外の場合は、このようなことを達成するために多くの努力を払わなければなりません。シーケンスを使用する必要があり、トリガの代わりに作成して、各インサートをマイクロ管理できます。 –
SQL Server ** 2012 **以降では、各挿入に固有のシーケンス番号を渡すために 'SEQUENCE'を使用したいと思います。 –