Create Proc GetProductDetails
(
@ProductId varchar(max)
)
as
begin
select ComplexId from ComplexMaster where ProductId in(@ProductId)
end
@ProductId パラメータ値 '1,2,3,4,5........13524'
Create Proc GetProductDetails
(
@ProductId varchar(max)
)
as
begin
select ComplexId from ComplexMaster where ProductId in(@ProductId)
end
@ProductId パラメータ値 '1,2,3,4,5........13524'
パラメータを使用して値のリストを渡しているように見えるため、 の代わりにテーブル値パラメータの使用にvarchar
切り替えることを検討することをお勧めします。
CREATE TYPE IdListType AS TABLE (Id int);
そのタイプのパラメータを定義します (必要な READONLY キーワードに注意してください)。
CREATE PROCEDURE GetProductDetails
(
@ProductIds IdListType READONLY
)
...
パラメータから値を読み取ることは、テーブル変数を読み取ることと同じです。一例:
SELECT ComplexId
FROM ComplexMaster
WHERE ProductId IN (SELECT Id FROM @ProductIds)
;