我将逗号分隔的值列表传递给存储过程。我需要执行查询以查看实体的ID是否在逗号分隔列表中。不幸的是,我觉得我不明白。SQL Server - 替换单引号并使用IN
当我执行以下存储过程:
exec dbo.myStoredProcedure @myFilter=N'1, 2, 3, 4'
我收到以下错误:
"Conversion failed when converting the varchar value '1, 2, 3, 4' to data type int."
我的存储过程是非常基本的。它看起来像这样:
CREATE PROCEDURE [dbo].[myStoredProcedure]
@myFilter nvarchar(512) = NULL
AS
SET NOCOUNT ON
BEGIN
-- Remove the quote marks so the filter will work with the "IN" statement
SELECT @myFilter = REPLACE(@myFilter, '''', '')
-- Execute the query
SELECT
t.ID,
t.Name
FROM
MyTable t
WHERE
t.ID IN (@myFilter)
ORDER BY
t.Name
END
如何在SQL语句中使用参数如上所述?谢谢!
您是否搜索过somma分隔的参数? – 2009-10-22 20:34:37