我一直在使用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));
答案 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;