MsSql Compact,两列和更多列的唯一约束

时间:2013-08-29 11:13:52

标签: sql-server-ce

家伙! MsSql Compact具有在两个或多个列上创建复合唯一索引(只是约束,而不是主键)的功能吗?

col 1 col2 1 2 1 2 - 插入/更新必须生成异常

我没有通过Server Explorer的设计器

看到此功能

2 个答案:

答案 0 :(得分:5)

CREATE UNIQUE INDEX ixMultiCol ON MyTable (col1, col2);

答案 1 :(得分:0)

唯一约束可以在唯一索引下使用,但是唯一索引不是唯一约束。唯一性约束可以防止在相关表列中出现重复项,而唯一索引可能只是悄悄地跳过重复项值。

虽然最初的问题是关于唯一约束的,但正确的答案应该是:

CREATE TABLE myTable (
   col1 int NOT NULL UNIQUE, -- single-column UNIQUE constraint
   col2 int NULL,

   CONSTRAINT myConstraint UNIQUE (col1, col2) -- multi-column UNIQUE constraint
);
GO

唯一索引可以对任何列使用DESC后缀,但是SQL Server CE中的唯一约束不能。还请注意,CONSTRAINT myConstraint部分是可选的-see