2013-07-10 37 views
1

我想创建这样一个复合主键:SQL服务器 - 复合键生成

CREATE TABLE TableA (Column1 nvarchar(50) NOT NULL, Column2 nvarchar(3) NOT NULL, Column3 nvarchar(50) NOT NULL) 

ALTER TABLE TableA ADD CONSTRAINT PK_AuxGroupData PRIMARY KEY CLUSTERED (Column1 , Column2) 

由于某种原因,第二个查询产生以下异常:

系统。发生Data.SqlServerCe.SqlCeException消息= 指定的 约束无效。来源= SQL Server精简ADO.NET 数据提供的HResult = -2147217900 NativeError = 25505

这发生在我运行在调试模式下我从微软的Visual Studio 2010项目。

我的机器有:

  • 的Microsoft SQL Server 2008精简3.5 SP2 ENU
  • 的Microsoft SQL Server 2008 压缩3.5 SP2 x64的ENU

任何帮助吗?

回答

1

不幸的是,SQL Server Compact Edition不支持聚簇索引。这也适用于主键。

链接表明它不支持聚簇索引:
- http://technet.microsoft.com/en-us/library/ms345331(v=sql.105).aspx

链接显示,主键由唯一索引维护:
- http://technet.microsoft.com/en-us/library/ms173393.aspx

+0

那是一个耻辱......感谢您的快速回复 – RedEagle

+0

这个:http://stackoverflow.com/questions/1545571/how-do-i-make-a-composite-key-with-sql-server-management-studio表明它*是*可能的。 –

+0

@ClayShannon - 这个问题是关于SQL-Server,而不是SQL-Server-CE。这个问题特别是关于SQL-Serve-CE,它具有更多有限的功能。 – MatBailie