如何在SQL Server CE(精简版)数据库中创建外键关系?

问题描述 投票:47回答:7

Visual Studio 2005不提供用于在SQL Server CE数据库中创建表之间关系的界面(我使用的是3.0版),据我所知,您无法使用Management Studio打开Compact Edition数据库。有任何想法吗?

database visual-studio sql-server-ce visual-studio-2005
7个回答
70
投票

不幸的是,目前没有设计人员支持(与SQL Server 2005不同)在SQL Server CE中构建表之间的关系。要建立关系,您需要使用SQL命令,例如:

ALTER TABLE Orders
ADD CONSTRAINT FK_Customer_Order
FOREIGN KEY (CustomerId) REFERENCES Customers(CustomerId)

如果您正在进行CE开发,我会推荐这个FAQ:

编辑:在Visual Studio 2008中,现在可以通过右键单击表格在GUI中执行此操作。


44
投票

Visual Studio 2008确实有一个允许您添加FK的设计器。只需右键单击表格...表格属性,然后转到“添加关系”部分。


7
投票

您需要创建一个查询(在Visual Studio中,右键单击数据库连接 - >新查询)并执行以下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


3
投票

当Alan说有设计师的支持时,他是正确的。当他暗示你不能选择外键表时,Rhywun是不正确的。他的意思是在UI中外键表下拉显示为灰色 - 这意味着他没有右键单击正确的表来添加外键。

总之,右键单击外键表,然后通过“表属性”>“添加关系”选项选择相关的主键表。

我做了很多次,它的工作原理。


2
投票

Walkthrough: Creating a SQL Server Compact 3.5 Database

在上一过程中创建的表之间创建关系

  1. 在Server Explorer / Database Explorer中,展开Tables。
  2. 右键单击“订单”表,然后单击“表格属性”。
  3. 单击添加关系。
  4. 在“关系名称”框中键入FK_Orders_Customers。
  5. 在“外键表列”列表中选择“客户ID”。
  6. 单击“添加列”。
  7. 单击添加关系。
  8. 单击“确定”完成该过程并在数据库中创建关系。
  9. 再次单击“确定”以关闭“表属性”对话框。

1
投票
create table employee
(
   empid int,
   empname varchar(40),
   designation varchar(30),
   hiredate datetime, 
   Bsalary int,
   depno constraint emp_m foreign key references department(depno)
)

我们应该有一个主键来创建两个或多个表之间的外键或关系。


1
投票

我知道这是一个“很长时间”,因为这个问题是第一次被问到的。以防万一,如果有人帮助,

MS通过SQL Server Compact Tool Box(https://sqlcetoolbox.codeplex.com/)很好地支持添加关系。只需安装它,您就可以使用Server Explorer窗口连接到Compact Database。右键单击主表,选择“表属性”。您应该有以下窗口,其中包含“添加关系”选项卡,允许您添加关系。

© www.soinside.com 2019 - 2024. All rights reserved.