【问题标题】:Is an uniqueidentifier data type in SQL the same as an autonumber in Access?SQL 中的 uniqueidentifier 数据类型是否与 Access 中的自动编号相同?
【发布时间】:2017-05-17 13:01:43
【问题描述】:

我第一次使用 SQL 创建数据库,想知道唯一标识符数据类型是否与 MS Access 中的自动编号相同?如果不是,谁能告诉我如何让 SQL 自动为主键创建一个整数值?

【问题讨论】:

    标签: sql sql-server ms-access


    【解决方案1】:

    唯一标识符是一个 16 字节的 GUID。表示为 32 个字符的十六进制字符串。

    Int 是一个整数。

    在 MS SQL 中创建一个以整数作为主键的表,如下所示:

    CREATE TABLE TableName(
    YourIDColumn INT PRIMARY KEY IDENTITY(1,1))
    

    我冒昧地从 1 开始为您的身份密钥播种,并自动递增 1。请注意,这也是 SQL 中的默认设置,但为了清楚起见,我在此处指定了它。该语句还将在该列上创建一个主键(并通过代理一个聚集索引)。

    【讨论】:

    • IDENTITY 关键字提供了自动增量功能。
    • 谢谢。这正是我一直在寻找的。我只是不确定如何实现它。谢谢
    • uniqueidentifier 不是 32 个字符。这是一个 16 字节的 GUID。如果您将其转换 为字符串,则常规表示可能是 32 个十六进制数字。这不会使它成为这样的字符串。不要将 datarepresentations 混淆。
    • @Damien_The_Unbeliever 很公平,我会更新帖子以澄清
    【解决方案2】:

    是的。在 Access 中,您必须使用自动编号或长。不是字符串。

    然后,在设计窗口的下部窗格中,指定 Field Size:Replication-ID

    现在该字段将拥有一个真正的 GUID。

    【讨论】:

    • 自动编号不是十六进制的 guid。
    • 你为什么这么认为?我用过几次,它完全兼容SQL Server中的uniqueidentifier。请检查并删除您的反对票。请参阅上面@Damien 的评论。
    • 它与用户请求具有自动递增的整数值不匹配。
    • 这是正确的,但是如果您希望在 Access 中有一个具有数据类型的字段,则必须在表设计器中指定 Autonumber 或 Long Replication-ID (GUID) 直接兼容 SQL Server 的唯一标识符。
    • 很公平,我明白你在说什么,但这并不能具体回答问题。如果您使用 Replication-ID 和 Autonumber,它确实可以与 uniqueidentifier 互换。我会改变我的投票,所以让我吧(1 小时......)。
    猜你喜欢
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多