-2
Create Proc GetProductDetails
(
 @ProductId varchar(max)
)
as
begin
select ComplexId from ComplexMaster where ProductId in(@ProductId)
end

@ProductId パラメータ値 '1,2,3,4,5........13524'

4

1 に答える 1

1

パラメータを使用して値のリストを渡しているように見えるため、 の代わりにテーブル値パラメータの使用に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)
;
于 2013-02-21T08:59:32.907 に答える