如何将两个值传递给SQL Server存储过程中的单个参数?

时间:2014-01-22 07:47:46

标签: sql-server

这是我的商店程序:

 ALTER PROC [dbo].[Details]

 @name nvarchar(20)

 AS

  BEGIN

 SELECT Id FROM Client WHERE name in (@Name)

 END

如果我传递一个值,则输出为:

像这样,我正在路过:

EXEC [dbo].[Details] 'Monday'

对于两个值,像这样:

如果我传递的是两个值输出,那就不是来了:

为了得到这个,我需要发送参数 目前我正在传递像This

这样的两个参数
EXEC [dbo].[Details] ''Monday','Wipro'';

提前感谢你

2 个答案:

答案 0 :(得分:4)

您可以尝试使用此代码从参数中提取表格:

declare @sql nvarchar(max)=
'abc,def,ghi,jkl'
set @sql = replace(@sql,',','''),(''')
set @sql = 'select *
from (values ('''+@sql+''')
) a ( Value )
'
PRINT(@sql)
exec sp_executesql @sql

然后使用IN条件的执行结果。您可以使用任何分隔符配置此部件。

答案 1 :(得分:1)

试试这个:

 ALTER PROCEDURE dbo.[Details]
    @name NVARCHAR(30)
    AS
        DECLARE @Sql VARCHAR(MAX)
        SET @name = REPLACE(@name,',',''',''')
        SET @Sql = 'SELECT
                    *
                    FROM table1
                    WHERE username IN
                    (
                         ''' + @name + '''
                    )'
        EXEC (@Sql)
        EXEC [dbo].[Details] 'mohan,prashant'