2010-03-17 55 views
2

我们遇到了这个问题:在sqlserver 2005/2008中,我们创建了一些以整数标识列作为主键的新表:[Id] [int] IDENTITY(1,1) NOT NULL。
当通过SSIS数据流任务在此表中加载数据时,SSIS应自动填充Id列。它的确如此,但它从0开始而不是1.之后,当我们删除所有行并执行checkident(reseed,0)时,我们重新加载并从1开始,因为它应该是。任何想法我们如何能从第一时间得到它?SSIS在标识列中插入0作为值

回答

1

您是否直接在SSMS中创建带有标识列的表?我已经看到使用ERD工具创建T-SQL DDL时身份种子从0开始。另外,ID列从1开始有意义吗?

+0

有趣的问题。我其实不会创建任何表格,我只是“按原样”“接收”数据库并将其与我们的数据一起加载。但是当你问这个问题时,我做了一些测试,并在SSMS中自己创建了一个表格。当我用SSIS加载时,一切顺利,Id从1开始。有趣!所以我会问问表是如何创建的,只要我发现就让你知道。 要回答你的第二个问题,它确实很重要,因为NHibernate有一个Id为0的问题。 – 2010-03-18 07:37:03

+0

你可以编写表格的create语句来检查DDL吗? – grapefruitmoon 2010-03-18 10:34:44

+0

表格不是直接在SSMS中创建的,而是通过Visual Studio数据库项目创建的。我用这种方式创建了一个表,但现在ssis再次从1开始加载,因此这里没有问题。 – 2010-03-18 13:31:02