2009-06-09 13 views
0

私はどこのid = 0の行を持つテーブルを作成しようとしていますが、アイデンティティインサート列は1,1から始まるので、以下のすべては、私がIDENTITY_INSERTテーブルの初期化スクリプト

を実行する必要が

を挿入IDを使用

DBCC CHECKIDENT ('Foo', RESEED, 0); 

手作業で(スクリプトを使用して)次の行にid = 1を渡すと、 が挿入スクリプトからの最初の行とそれに続く他のすべての行のid = 0を取得する別の方法です1だから私はdbccのチェックインに電話する必要はありません

iはID = 0私は実行の次

SET IDENTITY_INSERT [dbo].[Foo] ON; 
INSERT INTO [dbo].[Foo] ([Id],[Code],[Name]) VALUES (0, 'Default', 'Regular'); 
SET IDENTITY_INSERT [dbo].[Foo] OFF; 

、私は

DBCC CHECKIDENTを実行しなければならない( 'foo' を有する行をしたい以下の表

CREATE TABLE [dbo].[Foo](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [CreatedAt] [datetime] NOT NULL CONSTRAINT DF_Foo_CreatedAt DEFAULT getdate(), 
    [ModifiedAt] [timestamp] NOT NULL, 
    [Code] [nvarchar](50) NOT NULL, 
    [Name] [nvarchar](50) NULL, 
CONSTRAINT [PK_Foo] PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
) ON [PRIMARY] 
) ON [PRIMARY] 

を作成します、RESEED、0);

は、以下のすべての挿入が1

答えて

4

ベンから開始するあなたはID列が0ではなく1で開始したいのか、私は理解してから

を取得しますか?

それはあなたが望むなら、あなたは最初のシードIDENTITY(シード、インクリメント)へ

変更作成表を変更する必要があります。

[ID] [INT] IDENTITY(0,1)NOT NULLを、