How to pass string parameter with `IN` operator in stored procedure SQL Server 2008

后端 未结 4 971
陌清茗
陌清茗 2020-12-01 11:40

I have a stored procedure when I execute it I got error

Conversion failed when converting the varchar value \'+@dptId+\' to data type int

4条回答
  •  余生分开走
    2020-12-01 12:03

    Try using sp_executesql as the answer. Not the most efficient but it works

    ALTER PROCEDURE [dbo].[uspTestReportData_GetBySerial] 
        @SerialNumbers nvarchar(200)
    AS
    BEGIN
        SET NOCOUNT ON;
        declare @sql nvarchar(200)
    
        set @sql = 'SELECT * from MyTable WHERE  Serial_Number in (' + @SerialNumbers + ')'
        execute sp_executesql @sql                    
    
    END
    

提交回复
热议问题