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

How do you create a foreign key relationship in a SQL Server CE (Compact Edition) Database?

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


不幸的是,当前不存在用于在SQL Server CE中建立表之间关系的设计器支持(与SQL Server 2005不同)。要建立关系,您需要使用SQL命令,例如:

1
2
3
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中,右键单击数据库连接->新建查询)并执行以下SQL:

1
2
3
4
ALTER TABLE tblAlpha
ADD CONSTRAINT MyConstraint FOREIGN KEY (FK_id) REFERENCES
tblGamma(GammaID)
ON UPDATE CASCADE

要验证是否已创建外键,请执行以下SQL:

1
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

感谢E Jensen(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1)


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

总而言之,右键单击前键表,然后通过"表属性">"添加关系"选项选择相关的主键表。

我已经做过很多次了,并且有效。


演练:创建SQL Server Compact 3.5数据库

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

  • 在服务器资源管理器/数据库资源管理器中,展开"表"。
  • 用鼠标右键单击订单表,然后单击表属性。
  • 单击添加关系。
  • 在"关系名称"框中键入FK_Orders_Customers。
  • 在外键表列列表中选择CustomerID。
  • 单击添加列。
  • 单击添加关系。
  • 单击确定以完成该过程并在
    数据库。
  • 再次单击"确定"关闭"表属性"对话框。

  • 自第一次提出这个问题以来,我知道这是"很长的时间"。以防万一,如果它可以帮助某人,

    MS通过SQL Server Compact工具箱(https://sqlcetoolbox.codeplex.com/)很好地支持添加关系。只需安装它,然后您就可以选择使用"服务器资源管理器"窗口连接到紧凑型数据库。右键单击主表,选择"表属性"。您应该具有以下窗口,其中包含"添加关系"选项卡,允许您添加关系。

    Add Relations Tab - SQL Server Compact Tool Box


    1
    2
    3
    4
    5
    6
    7
    8
    9
    create table employee
    (
       empid int,
       empname varchar(40),
       designation varchar(30),
       hiredate datetime,
       Bsalary int,
       depno constraint emp_m foreign key references department(depno)
    )

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


    推荐阅读

      linux下创建网络命令?

      linux下创建网络命令?,网络,地址,工作,系统,管理,命令,名字,最新,项目,设备,l

      linux命令创建项目组?

      linux命令创建项目组?,管理,密码,项目,命令,系统,位置,文件,用户组,用户,文

      linux的创建目录命令?

      linux的创建目录命令?,名字,地址,位置,密码,软件,系统,命令,目录,文件夹,文

      linux创建端口命令?

      linux创建端口命令?,系统,网络,服务,通讯,检测,工具,端口,电脑,命令,以下,Lin

      linux创建内容的命令?

      linux创建内容的命令?,名字,文件,命令,密码,时间,系统,文件名,终端,目录,文

      linux下文件创建命令?

      linux下文件创建命令?,名字,名称,首次,命令,文件,系统,密码,文件名,文件夹,

      linux创建vp命令?

      linux创建vp命令?,系统,工作,基础,设备,地址,命令,目录,环境,信息,工具,linux

      linux命令创建文件加?

      linux命令创建文件加?,名字,管理,系统,名称,密码,首次,命令,文件,文件夹,位

      linux按命令创建磁盘?

      linux按命令创建磁盘?,系统,信息,业务,号码,数据,情况,电脑,分区,较大,工具,

      linux命令中创建文本?

      linux命令中创建文本?,系统,时间,文件,终端,名字,名称,发行,命令,文件夹,文

      linux常用命令创建?

      linux常用命令创建?,地址,系统,工作,时间,命令,管理,文件,目录,路径,控制台,l

      文件创建linux命令?

      文件创建linux命令?,名字,时间,名称,系统,首次,文件,命令,密码,文件名,目录,L

      linux创建软链接命令?

      linux创建软链接命令?,工作,地址,位置,系统,信息,管理,服务,名字,链接,文件,

      linux创建数组命令?

      linux创建数组命令?,地址,工作,系统,信息,命令,代码,目录,情况,标准,文件,Lin

      linux创建dic命令?

      linux创建dic命令?,软件,系统,电脑,下来,中心,词典,分级,基础,权威,网络,如何

      创建空文件linux命令?

      创建空文件linux命令?,名字,系统,密码,命令,文件,标准,首次,名称,时间,单位,l

      linux创建用户命令是?

      linux创建用户命令是?,系统,密码,用户,软件,联系方式,用户名,电脑,命令,账

      linux自己创建命令?

      linux自己创建命令?,名字,名称,密码,系统,首次,文件夹,命令,文件,位置,目录,l

      linux如何创建命令?

      linux如何创建命令?,工作,系统,名字,命令,首次,名称,地址,基础,密码,信息,lin

      linux创建软链命令?

      linux创建软链命令?,位置,系统,信息,链接,文件,盘中,名字,命令,目录,结点,Lin