3

我刚开始使用 SQL Server,在将值添加到具有 type 列的表时遇到了一些麻烦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”;列不允许空值。插入失败。

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

我什至尝试创建一个临时表(用id代替INTuniqueidentifier并将值从中复制到这个(没有ID列,它应该自动生成)

我唯一能想到的是该ID列不会自动为其创建值,我不知道如何解决这个问题。任何人都可以帮忙吗?

4

4 回答 4

4

Uniqueidentifier 是一种特殊类型,可用于生成 GUID。长度为 16 字节,并且不会像 Identity 列那样自动增加。您需要使用 Convert 或 Cast 子句从 varchar 中获取正确的唯一标识符,如果超过 16 字节,它将被截断。

使用 NewID() 生成新的唯一标识符。

也许这个链接可以帮助你

于 2012-07-05T14:42:38.013 回答
3

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

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

于 2012-07-05T15:11:37.357 回答
0

我认为您正在寻找的是一个身份字段。UniqueIdentifier 字段用于存储 GUID。

将字段类型更改为 int,然后将其身份规范更改为“是”。

另一种解决方案是从代码中传递您自己的 GUID 的 ID 字段。

于 2012-07-05T14:39:20.327 回答
0

回答太晚了,但它可能对某人有帮助,转到你的 sql 表设计模式,选择你需要的表的属性,在这里详细选项卡(下到表)你会看到一个属性 RowGuid --> 是(确保打开是的)。

干杯:)

于 2020-06-12T06:36:49.373 回答