可以用一个字符串传入,然后在存储过程中分解到成一个表变量使用.比如可以传一个'123|13|523|46|'这样的字符串时去.分解后用insert到一个临时表里,然后用select从临时表数据.

解决方案 »

  1.   

    看个例子先(只提供一个思路)?ALTER PROCEDURE dbo.StoreProcedure1
    (
    @OWNER_IDS nvarchar(256), --格式如:'101|103|105|121|'
    @SP nvarchar(256)--格式如:'|'
    )AS
    -- SET NOCOUNT ON 
    DECLARE @tmpTable TABLE (ID INT)
    DECLARE @I INT

    SET @I = 0
    WHILE CHARINDEX( @SP, @OWNER_IDS, @I) > 0 --循环
    BEGIN
    INSERT INTO @tmpTable (ID)
    VALUES(SUBSTRING(@OWNER_IDS, @I, CHARINDEX(@SP, @OWNER_IDS, @I) - @I)) 

    SET @I =  CHARINDEX(@SP, @OWNER_IDS, @I) + 1
    END
    SELECT * FROM SOME_TABLE WHERE (ID in (SELECT ID FROM @tmpTable))

    RETURN