2014-04-10 54 views
-1

語境:SQLServer2012如何在SQLServer用戶定義類型中存儲字典?

微軟CLR User-Defined Types頁面之一,它說(部分)

與SQL Server 2005開始,您可以使用用戶定義類型(UDT)來擴展標量型系統的服務器,可以在SQL Server數據庫中存儲CLR對象。

這是否意味着我可以將字典變成UDT?如果是這樣,怎麼樣?如果不是,爲什麼不呢?

假設我不System.Core程序遇到問題,所有這一切,我希望,也許我能爲JSON解析做些有益的事與JavaScriptSerializer這樣的:

JavaScriptSerializer ser = new JavaScriptSerializer(); 
return ser.Deserialize<Dictionary<string, object>>("{'some':['deeply',{'nested':'json record'}]}); 
+2

如果我甚至想到這一點,我需要一個非常好的理由,不要考慮只有在兩列存儲鍵和值的表(如果需要多個「字典」,還有其他列)。你有沒有強烈的理由不選擇走這條路? –

+0

本週我一直在攀登JSON-in-SQLServer城堡的牆壁。現在,我準備嘗試幾乎任何東西。我不準備做的一件事是讓System.Core'可用'。 – bugmagnet

+0

哦,我打算閱讀的JSON(只是通過更嚇人的方式)來自Google Analytics。 – bugmagnet

回答

1

我同意Damien_The_Unbeliever 。簡單,直接,也許最好的方法是2列表,關鍵和價值。

但是,還有另一種選擇,那就是使用XML列,並將序列化字典存儲在那裏。請注意,這意味着如果您確實想要使用SQL進行更改或使用數據,則與簡單的2列表方法相比,您的DML語句將變得非常複雜且效率低下。

相關問題