2012-07-05 53 views
2

我刚刚开始使用SQL Server,并且在将值添加到类型为uniqueidentifier的列表的表中时遇到一些麻烦。uniqueidentifier列的问题

表包括:

ID (uniqueidentifier), CODE (nchar(5)), COUNTRY_CODE(nchar(2)), NAME(nchar30) 

我尝试添加从Excel和CSV文件中的值,基本上他们是这样的:

DEBE,DE,Berlin 

我不能加载它,总是有一些错误此ID字段。

当我尝试添加值手动像:

INSERT INTO [Portfolio].[dbo].[Regions](CODE, COUNTRY_CODE, NAME) 
VALUES ('DEBE', 'DE', 'Berlin'); 

它说:

无法将NULL值插入列 'ID',表 'Portfolio.dbo.Regions';列不允许有空值。 INSERT失败。

当然,当我添加一个id列和一个数字,我得到的信息int与uniqueidentifier不兼容。

我甚至尝试创建一个临时表(与id作为INT代替uniqueidentifier)和复制值从它进入这个(没有ID列,它应该自动生成)

只有我能想到的事情是ID列不会自动创建值,我不知道如何解决这个问题。谁能帮忙?

回答

4

唯一标识符是一种特殊类型你可以使用它来产生GUID,长度为16字节,不会自动作为Identity列增加,如果超过16字节将被截断,你需要使用Convert或Cast子句来从varchar中获得正确的uniqueidentifier。使用NewID()生成新的唯一标识符

Maybe this link can help you

0

我认为你正在寻找的是身份领域。 UniqueIdentifier字段用于存储GUID。

更改字段类型为int,然后改变它的身份,规格为“Yes”。

其他的解决办法是通过ID字段自己的GUID的代码。

2

如上所述,使用NewID()创建一个标识符。

当您处于表格的设计模式时,可以将NewID()放置在“默认值或绑定”插槽中。这意味着对于插入表中的任何新记录(例如CODE,COUNTRY_CODE,NAME),将创建唯一标识符。