Visual Studio 2005不提供用于在SQL Server CE数据库中的表之间创建关系的界面(我正在使用版本3.0),并且据我所知,您无法使用Management Studio打开Compact Edition DB。有任何想法吗?如何在SQL Server CE(精简版)数据库中创建外键关系?
回答
不幸的是,目前没有对SQL Server CE中的表之间建立关系的设计器支持(与SQL Server 2005不同)。要建立关系,你需要使用SQL命令,如:
ALTER TABLE Orders
ADD CONSTRAINT FK_Customer_Order
FOREIGN KEY (CustomerId) REFERENCES Customers(CustomerId)
如果你正在做CE的发展,我会建议这个常见问题:
编辑:在Visual Studio 2008中,这是现在可以做在GUI上右键单击您的表格。
您需要创建一个查询(在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詹森(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1)
Visual Studio 2008中确实有一个设计师,允许你添加FK的。只需右键单击表格...表格属性,然后进入“添加关系”部分。
HTH
我相信我在使用VS 2005时遇到此问题。很高兴知道你现在可以通过VS 2008中的UI来完成它! – 2009-08-11 16:27:38
Alan说他有设计师支持是正确的。当他暗示你不能选择外键表时,Rhywun是不正确的。他的意思是,在用户界面中,外键表格下拉显示为灰色 - 这意味着他没有右键单击正确的表格来添加外键。
总之,右击foriegn键表,然后通过'Table Properties'>'Add Relations'选项选择相关的主键表。
我已经做了很多次,它的工作原理。
感谢罗布,这对我来说是诀窍。 – Spidey 2009-12-16 13:16:29
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/)很好地支持添加关系。只需安装它,然后您就可以选择使用服务器浏览器窗口连接到压缩数据库。右键点击主表,选择“表格属性”。您应该有以下窗口,其中包含“添加关系”选项卡,允许您添加关系。
Walkthrough: Creating a SQL Server Compact 3.5 Database
要创建在前面的过程
- 在服务器资源管理器/数据库资源管理器,展开表中创建的表之间的关系。
- 用鼠标右键单击订单表,然后单击表属性。
- 单击添加关系。
- 在关系名称框中键入FK_Orders_Customers。
- 在“外键表列”列表中选择CustomerID。
- 单击添加列。
- 点击添加关系。
- 单击确定以完成该过程并在 数据库中创建关系。
- 再次单击确定关闭表格属性对话框。
- 1. 如何在vs2010中创建/添加SQL Server精简版数据库?
- 2. SQL Server精简版 - 创建数据库表
- 3. SQL Server CE中的数据分页(精简版)
- 4. SQL Server帮助创建外键关系
- 5. 在SQL CE(精简版)版本3.5
- 6. 创建与外部SQL Server数据库的关系
- 7. SQL Server 2008中两个数据库之间的外键关系
- 8. SQL Server数据库中的未定义关系(外键)
- 9. 在数据库中创建外键关系
- 10. Sql Server精简版3.5:数据是否保存在数据库文件中?
- 11. 加密SQL Server精简版
- 12. iBatis.Net SQL Server精简版3.5
- 13. SQL Server精简版4 - AccessViolationException
- 14. sql server精简版功能
- 15. 如何在SQL Server中创建数据库的数据库图
- 16. 如何在SQL-Server上创建关系数据日志?
- 17. 如何在Sql Server精简版中使用LIKE参数
- 18. SQL Compact(CE)与创建外键问题
- 19. 如何在SQL Server Management Studio中管理SQL CE数据库?
- 20. 如何在SQL Server Management Studio中管理SQL CE数据库?
- 21. 创建新外键(SQL Server)
- 22. 在SQL Server Management Studio中创建外键
- 23. 未创建数据库(sql ce)表
- 24. SQL Server CE和C#;填充从SQL Server CE数据库
- 25. SQL Server:通过查询创建数据库关系图
- 26. 如何在SQL Server 2014上创建SQL Server 2012数据库?
- 27. SQL Server中的数据库表关系
- 28. 在SQL Server 2005中创建数据库
- 29. 在SQL Server中创建数据库
- 30. 在SQL Server中创建数据库
我相信你遗漏了CONSTRAINT关键字。至少在SQL Server CE 3.5 ... ALTER TABLE Orders ADD CONSTRAINT FK_Customer_Order FOREIGN KEY(CustomerId) 参考客户(客户ID) – Edo 2010-01-03 23:25:31