T-SQLの新機能です。現在、ストアドプロシージャの入力パラメータで苦労しています。ストアドプロシージャの入力パラメータとしてのT-SQLカスタムデータ型
SalesAreas
のリストを私のストアドプロシージャに渡したいと思います。 SalesArea
はいくつかのcountryIdといくつかのbool値を持つことができますが、C#ではクラスを想像してください。
私は、ストアドプロシージャにそれを渡すために自分自身のデータ型を作成するために始めた:私はtSalesAreas
のリストを渡したいストアドプロシージャで
CREATE TYPE tIdList AS TABLE
(
ID INT NULL
);
GO
CREATE TYPE tSalesArea AS TABLE
(
CountryIds tIdList NULL,
IsLargeClient BIT NULL,
IsSmallClient BIT NULL,
);
GO
:
@SalesAreas tSalesArea READONLY
問題を:tSalesArea
のデータ型として私のtIdList
を使用することはできません。
私は2つの営業エリア挿入した場合(1:countryIds 3,5; 2:countryId 7)、それはこのようなものになります。
Id | SalesAreaId | CountryId
---+-------------+-----------
1 | 1 | 3
2 | 1 | 5
3 | 2 | 7
を、あなたがこの問題を解決する方法を知っていますか?
ありがとうございます!
代わりに、テーブルの代用としてXMLパラメータを渡すこともできます。 –
@ JohnEisbrener Or Json、または解析する文字列...常に選択肢があります。しかし、テーブル値のパラメータはより意味的に適切であり、通常は他のオプションよりも優れたパフォーマンスを発揮します。 – SqlZim