-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 回答