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

时间:2008-09-05 20:26:12

标签: database visual-studio sql-server-ce visual-studio-2005

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

7 个答案:

答案 0 :(得分: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中执行此操作。

答案 1 :(得分:44)

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

答案 2 :(得分: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 :(得分:3)

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

总之,右键单击foriegn密钥表,然后通过'Table Properties'> “添加关系”选项可选择相关的主键表。

我已经做了很多次,但它确实有效。

答案 4 :(得分:2)

Walkthrough: Creating a SQL Server Compact 3.5 Database

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

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

答案 5 :(得分: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)
)

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

答案 6 :(得分:1)

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

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

Add Relations Tab - SQL Server Compact Tool Box