1
我對T-SQL相當陌生,目前我正在爲存儲過程使用輸入參數而掙扎。T-SQL自定義數據類型作爲存儲過程的輸入參數
我想將SalesAreas
的列表傳遞給我的存儲過程。 A SalesArea
可以有幾個countryIds和一些bool值,想象一下C#中的一個類。
我開始創建自己的數據類型,將其傳遞到存儲過程:
CREATE TYPE tIdList AS TABLE
(
ID INT NULL
);
GO
CREATE TYPE tSalesArea AS TABLE
(
CountryIds tIdList NULL,
IsLargeClient BIT NULL,
IsSmallClient BIT NULL,
);
GO
在存儲過程中我想在tSalesAreas
列表傳遞:
@SalesAreas tSalesArea READONLY
問題:我無法使用我的tIdList
作爲tSalesArea
的數據類型。
如果我插入2個銷售區域(1:3,5 countryIds; 2:countryId 7),這將是這個樣子:
Id | SalesAreaId | CountryId
---+-------------+-----------
1 | 1 | 3
2 | 1 | 5
3 | 2 | 7
你知道如何解決這個問題?
謝謝!
您也可以傳入XML參數作爲表的替代。 –
@JohnEisbrener或Json,或者你必須解析的字符串......總是有其他選擇。但是,表值參數在語義上更合適,並且_usually_表現得比其他選項好得多。 – SqlZim