标识列的数据类型必须为 int、bigint、smallint、tinyint、decimal 或 numeric

L-F*_*our 4 c# sql database azure visual-studio

我在 Visual Studio 2012 中创建了一个数据库项目,目标平台设置为“Windows Azure SQL 数据库”。我添加了一个表格,如:

CREATE TABLE [dbo].[Organization]
(
    [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY NONCLUSTERED IDENTITY, 
    [Name] NVARCHAR(100) NOT NULL, 
    [CreationDate] DATETIME NOT NULL DEFAULT GetDate()
)

GO

CREATE CLUSTERED INDEX [IX_Organization_CreationDate] ON [dbo].[Organization] ([CreationDate])
Run Code Online (Sandbox Code Playgroud)

但它一直在抱怨:

Error   1   SQL71518: The identity column '[dbo].[Organization].[Id]' must be of data type int, bigint, smallint, tinyint, decimal, or numeric with a scale of 0, and the column must not be nullable.  C:\Projects\Gastrology\MGP\trunk\Sources\Cfg.Mgp.Infrastructure.Database\Organization.sql   3   2   Cfg.Mgp.Infrastructure.Database
Run Code Online (Sandbox Code Playgroud)

有人知道为什么我不能创建 guid 类型的主键吗?我究竟做错了什么?

谢谢!

Dus*_*gen 5

IDENTITY 不能与 GUID

使用NEWID来代替。

CREATE TABLE [dbo].[Organization]
(
    [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY NONCLUSTERED DEFAULT NEWID(), 
    [Name] NVARCHAR(100) NOT NULL, 
    [CreationDate] DATETIME NOT NULL DEFAULT GetDate()
)
Run Code Online (Sandbox Code Playgroud)