2008-09-05 93 views

回答

67

不幸的是,目前沒有對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上右鍵單擊您的表格。

+2

我相信你遺漏了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

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詹森(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1

44

Visual Studio 2008中確實有一個設計師,允許你添加FK的。只需右鍵單擊表格...表格屬性,然後進入「添加關係」部分。

HTH

+0

我相信我在使用VS 2005時遇到此問題。很高興知道你現在可以通過VS 2008中的UI來完成它! – 2009-08-11 16:27:38

3

Alan說他有設計師支持是正確的。當他暗示你不能選擇外鍵表時,Rhywun是不正確的。他的意思是,在用戶界面中,外鍵表格下拉顯示爲灰色 - 這意味着他沒有右鍵單擊正確的表格來添加外鍵。

總之,右擊foriegn鍵表,然後通過'Table Properties'>'Add Relations'選項選擇相關的主鍵表。

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

+0

感謝羅布,這對我來說是訣竅。 – Spidey 2009-12-16 13:16:29

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/)很好地支持添加關係。只需安裝它,然後您就可以選擇使用服務器瀏覽器窗口連接到壓縮數據庫。右鍵點擊主表,選擇「表格屬性」。您應該有以下窗口,其中包含「添加關係」選項卡,允許您添加關係。

Add Relations Tab - SQL Server Compact Tool Box

2

Walkthrough: Creating a SQL Server Compact 3.5 Database

要創建在前面的過程

  1. 在服務器資源管理器/數據庫資源管理器,展開表中創建的表之間的關係。
  2. 用鼠標右鍵單擊訂單表,然後單擊表屬性。
  3. 單擊添加關係。
  4. 在關係名稱框中鍵入FK_Orders_Customers。
  5. 在「外鍵表列」列表中選擇CustomerID。
  6. 單擊添加列。
  7. 點擊添加關係。
  8. 單擊確定以完成該過程並在 數據庫中創建關係。
  9. 再次單擊確定關閉表格屬性對話框。