2014-02-20 146 views
0

如何使用VS2012在SQL Server中創建用戶定義的類型? 我試圖做圖中顯示的步驟,但沒有出現任何事情。在Visual Studio 2012中創建SQL用戶定義的類型

而且我已經嘗試使用下面的代碼創建類型,但我不能創建該類型在我的表的元素。

CREATE TYPE CartListType AS TABLE 
(
    [ItemNo] INT   NOT NULL, 
    [NameEn] NVARCHAR (150) NULL, 
    [Price] FLOAT (53)  NULL, 
    [Quantity] INT   NULL, 
    [ImageSrc] VARCHAR (100) NULL 
) 
+0

您顯示的代碼對我來說工作正常。所以不知道你的問題是什麼。 「我不能創造這種類型的元素」 - 你能證明這一點嗎? –

+0

這是我正在嘗試執行的操作>> http://imgur.com/iPtc4nl –

回答

1

SQL Server中沒有嵌套表的概念。因此,雖然您顯示的代碼對於聲明用戶定義表(UDT)類型是正確的,但您不能做的是將該類型用作另一個表中列的聲明類型。您可以使用UDT來進行變量和參數聲明。

要做的事情更多的關係是將其作爲普通表創建,並附加一列作爲返回Bills表的外鍵。另一種方法是,如果您確實想要「行內存儲」數據(儘管它實際上將存儲在單獨的頁面中)將是將該列聲明爲XML,並使用XML設施來存儲和操作此數據。


我已經說過了肯定的東西,所以有人綁定到彈出,何況我忘了一些第三的使用情況,但總的點代表。

+0

將該類型用作列不會成爲「嵌套表」 - 至少在Oracle中使用時並不如此。它將是基於「結構」的列,即具有「子值」的單個值。嵌套表(如Oracle中所使用的)將能夠存儲該UDT的多個*行*。但我同意,通過1:N關係可以更好地完成此操作。 –

+0

@a_horse_with_no_name - 它似乎與我的Oracle嵌套表類似。而且我們不知道OP是否打算在該列中存儲0,1行或多行,如果他們已經成功創建此表 –

+0

,那麼在仔細查看UDT之後,您是對的,Hamed最可能想創建一個「嵌套表」。 –

相關問題