0

我在 Visual Studio 2010 中创建了一个数据库。

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

  • AdId 是主键,类型是 uniqueidentifier
  • 类型为 nvarchar 的 AdName
  • 类型为 uniqueidntifier 的 UserId

当用户登录并单击按钮时,我希望将一行添加到我的数据库中

  • AdName 的常量值(我确定了)
  • 登录用户的 ID 为用户 ID
  • 由数据库为 AdId 自动创建的 Id

添加一行后一切正常,但AdId的值在另一次没有改变,这个值一直是00000000-0000-0000-0000-000000000000。

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

4

3 回答 3

3

两件事情:

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

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

基本上,SQL Server 正在做你所要求的

于 2012-05-29T09:48:10.723 回答
1
CREATE TABLE myTable (
    myId uniqueidentifier NOT NULL
);

ALTER TABLE myTable ADD CONSTRAINT myConstraint
                        DEFAULT NEWSEQUENTIALID()
                        FOR myId ;
于 2012-05-29T09:47:13.590 回答
1

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

于 2012-05-29T09:47:25.833 回答