gpt4 book ai didi

sql-server - SQL Server 中的短 guid/从字符串转换为 uniqueidentifier

转载 作者:行者123 更新时间:2023-12-03 04:51:43 26 4
gpt4 key购买 nike

我需要创建一个包含简短指导的列。所以我发现了这样的事情:

alter table [dbo].[Table]
add InC UNIQUEIDENTIFIER not null default LEFT(NEWID(),6)

但我收到错误:

Conversion failed when converting from a character string to uniqueidentifier.

我一直在努力

LEFT(CONVERT(varchar(36),NEWID()),6)

CONVERT(UNIQUEIDENTIFIER,LEFT(CONVERT(varchar(36),NEWID()),6))

但我仍然遇到同样的错误。

最佳答案

不存在“短指南”这样的东西。 Guid 或uniqueidentifier 是一种 16 字节数据类型。您可以阅读in MSDN 。这意味着长度必须始终为 16 个字节,并且您不能像您尝试的那样使用 6 个字符。

在同一篇 MSDN 文章中,您可以找到如何初始化此类型的说明:

A column or local variable of uniqueidentifier data type can be initialized to a value in the following ways:

  • By using the NEWID function.
  • By converting from a string constant in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, in which each x is a
    hexadecimal digit in the range 0-9 or a-f. For example,
    6F9619FF-8B86-D011-B42D-00C04FC964FF is a valid uniqueidentifier
    value.

在您的情况下,您尝试仅将 6 个字符转换为 uniqueidentifier ,这显然失败了。

如果您只想使用 6 个字符,只需使用 varchar(6):

alter table [dbo].[Table]
add InC varchar(6) not null default LEFT(NEWID(),6)

请记住,在这种情况下,不能保证该 guid 是唯一的。

关于sql-server - SQL Server 中的短 guid/从字符串转换为 uniqueidentifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28916459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com