uniqueidentifier类型中主键的值不会更改

时间:2012-05-29 09:42:49

标签: sql visual-studio-2010 sql-server-2008 uniqueidentifier

我在visual studio 2010中创建了一个数据库。

此数据库有一个包含3列的表。

  • AdId是主键,其类型是uniqueidentifier
  • 类型为nvarchar的广告名称
  • 类型uniqueidntifier
  • 中的UserId

当用户登录并点击某个按钮时,我希望使用

添加一行添加到我的数据库中
  • AdName的常量值(我确定了)
  • 登录用户ID的用户ID
  • 由AdId数据库自动创建的ID

添加行时一切正常,但AdId的值在其他时间没有变化,此值始终为00000000-0000-0000-0000-000000000000。

我知道这是一个愚蠢的问题,但我不知道问题在哪里,我应该怎么做。 谢谢

3 个答案:

答案 0 :(得分:3)

两件事:

  • 您是否为AdId指定了NEWID()的默认值?

  • 您是否将00000000-0000-0000-0000-0000000000000x00(二进制)发送到数据库
    例如,SELECT CAST(0x00 AS uniqueidentifier)

基本上,SQL Server正在按照您的要求进行操作

答案 1 :(得分:1)

CREATE TABLE myTable (
    myId uniqueidentifier NOT NULL
);

ALTER TABLE myTable ADD CONSTRAINT myConstraint
                        DEFAULT NEWSEQUENTIALID()
                        FOR myId ;

答案 2 :(得分:1)

将AdId列的默认值设置为newid()