SQL Server Compact不支持创建表中的关键字“外键引用”,还是我犯了错误?

时间:2011-02-08 22:49:55

标签: sql-server-ce

我一直在使用Sql Compact获取错误。我已经看到可以在紧凑版中创建表约束,如here所示。根据找到的here文档,它提供了“完全引用完整性与级联删除和更新”。所以我真的不允许做以下事情或我犯了错误?我一直收到来自sql server compact edition的抱怨,即constaint无效,虽然它在快递版上运行良好。

CREATE TABLE [A](AKey int NOT NULL PRIMARY KEY);
CREATE TABLE [B](AKey int NOT NULL FOREIGN KEY REFERENCES A(AKey));

2 个答案:

答案 0 :(得分:4)

在Compact Edition上你不应该写FOREIGN KEY个关键字,你应该省略它并从REFERENCES关键字开始定义外键约束:http://msdn.microsoft.com/en-us/library/ms173393(v=sql.100).aspx

所以在你的情况下你应该写:

CREATE TABLE [A] (AKey int NOT NULL PRIMARY KEY);
CREATE TABLE [B] (AKey int NOT NULL REFERENCES A(AKey));

不需要ALTER

答案 1 :(得分:2)

因为它适用于快递版,我会认为我没有犯错。在紧凑版本中,这会产生预期效果,并伴随着级联。

CREATE TABLE [A] (AKey int NOT NULL PRIMARY KEY);  
CREATE TABLE [B] (AKey int NOT NULL);  
ALTER TABLE [B] ADD CONSTRAINT references_a FOREIGN KEY (AKey) REFERENCES A(AKey)
    ON DELETE CASCADE ON UPDATE CASCADE;