Visual Studio 2005 不提供用于在 SQL Server CE 数据库(我使用的是 3.0 版)中创建表之间关系的接口,据我所知,您无法使用 Management Studio 打开 Compact Edition DB。有任何想法吗?
7 回答
不幸的是,目前没有设计器支持(与 SQL Server 2005 不同)在 SQL Server CE 中建立表之间的关系。要建立关系,您需要使用 SQL 命令,例如:
ALTER TABLE Orders
ADD CONSTRAINT FK_Customer_Order
FOREIGN KEY (CustomerId) REFERENCES Customers(CustomerId)
如果您正在进行 CE 开发,我会推荐这个常见问题解答:
编辑:在 Visual Studio 2008 中,现在可以通过右键单击您的表在 GUI 中执行此操作。
Visual Studio 2008确实有一个允许您添加 FK 的设计器。只需右键单击表格...表格属性,然后转到“添加关系”部分。
您需要创建一个查询(在 Visual Studio 中,右键单击 DB 连接 -> 新建查询)并执行以下 SQL:
ALTER TABLE tblAlpha
ADD CONSTRAINT MyConstraint FOREIGN KEY (FK_id) REFERENCES
tblGamma(GammaID)
ON UPDATE CASCADE
要验证您的外键是否已创建,请执行以下 SQL:
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
感谢 E Jensen ( http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1 )
Alan 说有设计师的支持是正确的。当他暗示你不能选择外键表时,Rhywun 是不正确的。他的意思是,在 UI 中,外键表下拉菜单是灰色的——这意味着他没有右键单击正确的表来添加外键。
总之,右键单击外键表,然后通过“表属性”>“添加关系”选项选择相关的主键表。
我已经做过很多次了,而且效果很好。
create table employee
(
empid int,
empname varchar(40),
designation varchar(30),
hiredate datetime,
Bsalary int,
depno constraint emp_m foreign key references department(depno)
)
我们应该有一个主键来创建两个或多个表之间的外键或关系。
我知道自从第一次提出这个问题以来已经“很长时间”了。以防万一,如果它对某人有帮助,
MS 通过 SQL Server Compact Tool Box ( https://sqlcetoolbox.codeplex.com/ ) 很好地支持添加关系。只需安装它,然后您就可以选择使用服务器资源管理器窗口连接到紧凑型数据库。右键单击主表,选择“表属性”。您应该有以下窗口,其中包含允许您添加关系的“添加关系”选项卡。
演练:创建 SQL Server Compact 3.5 数据库
在上一个过程中创建的表之间创建关系
- 在服务器资源管理器/数据库资源管理器中,展开表。
- 右键单击订单表,然后单击表属性。
- 单击添加关系。
- 在关系名称框中键入 FK_Orders_Customers。
- 在外键表列列表中选择 CustomerID。
- 单击添加列。
- 单击添加关系。
- 单击确定以完成该过程并在数据库中创建关系。
- 再次单击“确定”关闭“表属性”对话框。