Isc*_*rio 3 sql sql-server-2008
我刚刚开始使用 SQL Server,在向具有类型列的表中添加值时遇到一些麻烦uniqueidentifier。
该表包括:
ID (uniqueidentifier), CODE (nchar(5)), COUNTRY_CODE(nchar(2)), NAME(nchar30)
Run Code Online (Sandbox Code Playgroud)
我尝试从 Excel 和 CSV 文件添加值,基本上它们看起来像这样:
DEBE,DE,Berlin
Run Code Online (Sandbox Code Playgroud)
我无法加载它,这个 ID 字段总是出现一些错误。
当我尝试手动添加值时,例如:
INSERT INTO [Portfolio].[dbo].[Regions](CODE, COUNTRY_CODE, NAME)
VALUES ('DEBE', 'DE', 'Berlin');
Run Code Online (Sandbox Code Playgroud)
它说:
无法将 NULL 值插入表“Portfolio.dbo.Regions”的“ID”列;列不允许为空。插入失败。
当然,当我添加id列和数字时,我得到 int 与 不兼容的信息uniqueidentifier。
我什至尝试创建一个临时表(用idasINT代替uniqueidentifier)并将其中的值复制到此表中(没有ID列,它应该自动生成)
我唯一能想到的是该ID列没有自动为其创建值,我不知道如何解决这个问题。有人可以帮忙吗?
Uniqueidentifier 是一种可用于生成 GUID 的特殊类型。长度为 16 字节,并且不会像标识列一样自动递增。您需要使用 Convert 或 Cast 子句才能从 varchar 中获取正确的 uniqueidentifier,如果超过 16 字节,则会被截断。
使用 NewID() 生成新的唯一标识符。