如果我在表A和表B中的主鍵在同一個數據庫(表B有它自己的主鍵)我創建一個關係與表A中的主鍵,以便一列在表B中是外鍵,這是否意味着在表A的主鍵列中創建的主鍵數據也將由於它是外鍵列而被添加到表B中,還是必須對該關係進行編碼,如果是的話,我該怎麼做呢?SQL Server密鑰和外鍵
0
A
回答
3
在回答你的問題:
...我是否有代碼 的關係,如果是的話,我該怎麼去 呢?
您將需要定義兩個表之間的關係。例如:
ALTER TABLE tableB
ADD CONSTRAINT FK_tableB_TableA FOREIGN KEY (tableAId)
REFERENCES tableA (id) ;
當您向tableB插入一條記錄時,您仍然需要定義tableAId is。 SQL Server不會奇蹟般地知道這應該是什麼。
所以假設如果TABLEA是這樣的:
1 | Some text | 1/1/2020
2 | blah blah | 6/1/2021
插入一條記錄TableB中所引用記錄2,你需要做的是:
INSERT INTO TableB (2,'My important information')
這是假設tableB的結構如下:
TableB
---------
Id --identity column/pk
tableAId --fk
SomeTextColumn
0
我不完全確定你在問什麼,但是如果你想在表A中插入一條記錄並將相關記錄插入到表B中,那麼你必須指定表A中記錄的ID作爲值在表B的外鍵字段中。
下面是一個示例:表作者的字段爲id
和name
。
INSERT author (id, name) VALUES (5, 'James Joyce')
現在桌上的書有場id
,author_id
和title
。
INSERT book (id, author_id, title) VALUES(99, 5, 'Ulysses')
如果是自動生成作者的id
場,那麼你就不會在INSERT語句中指定它,你會使用@@IDENTITY property檢索其值。
1
你的問:意思是,在表A中的主鍵列創建的主密鑰數據也將藉助於它是一個外鍵列
都能跟得上的被添加到表B,foriegn鍵不會將數據輸入到其他表格中。在插入引用表B中的foriegn鍵的記錄之前,您需要表A中的記錄。
問題2:或者是否必須編碼該關係?如果是這樣,我該怎麼做?
插入到表A,然後插入到表B.觸發器可以放在TableA上插入一條記錄到表B,當數據被輸入到TABLEA有你想要的...
相關問題
- 1. 更改密鑰和外鍵
- 2. SQL Server證書和對稱密鑰
- 3. SQL Server 2005光盤密鑰
- 4. SQL Server主鍵/外鍵
- 5. 外鍵作爲Commposite密鑰-PK
- 6. 刪除SQL Server中的外鍵和列
- 7. SQL Server 2005外鍵和索引
- 8. SQL Server,查找外鍵列的總和
- 9. mysql外鍵foriegn密鑰關係
- 10. SQL Server 2005外鍵級聯
- 11. SQL Server外鍵問題
- 12. SQL Server的外鍵引用
- 13. 創建新外鍵(SQL Server)
- 14. SQL Server中的外鍵
- 15. 添加外鍵,SQL SERVER 2008
- 16. SQL Server 2008外鍵錯誤
- 17. 在SQL Server中實現引用密鑰
- 18. 檢查唯一密鑰在SQL Server
- 19. 在SQL Server中創建主密鑰
- 20. 如何複製SQL Server對稱密鑰?
- 21. 在密鑰上的SQL Server 2005死鎖
- 22. SQL Server數據庫主密鑰
- 23. 鑰匙和外鍵關係
- 24. Azure SQL Server虛擬機與個人SQL Server生產密鑰
- 25. Guid主鍵/外鍵兩難SQL Server
- 26. SQL Server中的複合表,主鍵,外鍵和索引
- 27. SQL Server表主鍵和外鍵位於相反的表中?
- 28. JPA和SQL Server列加密
- 29. 在Sql Server中獲取主密鑰密碼
- 30. 可以在SQL Server主密鑰從密碼重現?
感謝您的及時答覆我想我現在明白了。 – simon 2010-10-13 18:51:50