我正在開發使用SQL Server 2008(基於服務的數據庫)的聯繫人管理器應用程序。大多數聯繫人都有幾個電子郵件或幾個電話號碼。那麼有沒有辦法將數組作爲數據類型存儲在SQL Server中?還是有人有這樣的替代方法?在SQL Server 2008中存儲數組
回答
您需要創建單獨的表格,每個聯繫號碼或電子郵件地址都有一行。
CREATE TABLE Contacts (contactId int, name varchar(128), etc, etc
CREATE TABLE ContactEmail (contactId int, emailAddress varchar(128), etc
CREATE TABLE ContactPhone (contactId int, phoneNumber varchar(128), etc
這將允許你修改單個號碼/電子郵件,刪除它們,將它們添加等,而不需要外部程序來解壓的數組。
但是,如果你真的想保存它規格化,你可以在陣列轉換成分隔字符串。 。在每個電子郵件地址之間加上一個分隔符(用適當的魔術來確保一個地址不包含分隔符),然後在返回時將其分開。
分號適用於電子郵件分隔符。事實上,一些庫自動支持分號分隔的地址。 – 2012-11-07 02:33:18
不,SQL中沒有數組類型。
您應該創建一個PHONENUMBERS表和存儲每行使用一個電話號碼,並使用外鍵(稱爲例如,PERSON_ID)來指代人表。
您可以使用的另一個選項是將聯繫信息作爲XML文檔存儲在表中的XML類型字段中。如果我不想根據聯繫信息的某些部分搜索人員,我只會這樣做。
例如,如果你認爲你可能有興趣在尋找所有的聯繫人誰擁有的電話號碼與一個特定的區域代碼,那麼你將要做出一個單獨的表,並涉及它,而不是將其存儲這樣的。
我知道你實際上可以在SQL Server 2008中查詢XML,但這實際上取決於你在聯繫人列表中有多少條記錄,因爲在很多數據上解析所有的XML會比較慢有獨立的桌子。
我使用XML列很好 - 他們*可以*是一個選項。然而,我的主要建議是,如果要在XML-as-an-entity之外查詢或修改數據,然後使用DRI將其提升到列。 – user2864740 2014-02-18 22:30:44
您可以使用表變量,用這個你應該使用一個DDL創建表,但你需要首先,在(@)寫。有了這個,你有一個數組....但是你不能將它存儲在一張桌子上,因爲一張桌子是一個數組。我真的需要在表內部有一個數據結構,你應該使用一個XML。據我所知,因爲SQL Server 2000有幾個功能可以使用XML。
或許,如果你能告訴我你的理由更多的細節做到這一點...我可以給你回更多的想法!
我希望我的answear可以幫助你
- 1. 將Unicode數據存儲在SQL Server 2008中XML數據類型
- 2. 在SQL Server 2008中加密和存儲敏感數據
- 3. 在SQL Server 2008 R2 Express中不存儲小數點
- 4. 發送參數到存儲過程在SQL Server 2008中
- 5. 在SQL Server 2008 R2數據庫中存儲圖像
- 6. 在SQL Server 2008中查找存在錯誤的存儲過程?
- 7. 在SQL Server 2008 R2中存儲來自存儲過程的多個數據集?
- 8. 學習SQL Server 2008和存儲過程
- 9. Sql Server 2008遞歸存儲過程
- 10. SQL Server 2008存儲過程問題
- 11. SQL Server 2008 - 文檔存儲架構的
- 12. 如何在SQL Server 2008 R2中保存存儲過程?
- 13. 將存儲過程從SQL Server 6.5轉換爲SQL Server 2008
- 14. SQL Server 2008存儲過程中的默認參數值
- 15. SQL Server 2008中的數組變量
- 16. 數組像SQL Server 2008中的功能
- 17. 在SQL Server中存儲HTML
- 18. 使用文件組/文件流將圖像存儲在Sql Server 2008數據庫
- 19. 將RichTextBox數據存儲在SQL Server中?
- 20. SQL 2008 XML存儲
- 21. 在Sql Server 2008中存儲網站層次結構
- 22. 在SQL Server 2008中存儲其他語言並檢索返回
- 23. 如何在SQL Server 2008中存儲敏感信息?
- 24. 大容量圖像存儲在SQL Server 2008中
- 25. 在SQL Server 2008存儲過程中隱藏exec輸出
- 26. 在SQL Server 2008 Management Studio中查找存儲過程
- 27. SQL Server 2008:在nvarchar字段中存儲日期
- 28. 如何在SQL Server 2008 R2中存儲散列密碼
- 29. 在SQL Server 2008中存儲文檔的最佳策略
- 30. 我想在SQL Server 2008中隱藏存儲過程的腳本
什麼這讓與WPF呢? – 2010-02-21 14:23:50