我正在将一个逗号分隔的值列表传递给一个存储过程。我需要执行一个查询,看看某个实体的ID是否在逗号分隔的列表中。不幸的是,我想我不明白一些事情。
当我执行以下存储过程时:
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语句中使用上述参数?谢谢!
发布于 2009-10-23 05:57:00
https://stackoverflow.com/questions/1609657
复制相似问题