当我尝试此查询它的工作原理:传递一个列表存储过程不起作用
SELECT *
FROM tbl_Users
WHERE UserId IN (555, 3695, 8787))
但是,当我把它在存储过程中它得到的值只有当我通过一个ID。如果我传递更多ID的
我什么都没有从数据库返回:
CREATE PROCEDURE myStoredProcedure
@m_UserIdList varchar(500)
AS
SELECT u.*, p.*
FROM tbl_Users u
INNER JOIN tbl_Bunker b
ON u.BunkerId = b.Bunker
WHERE u.UserId IN (@m_UserIdList)
两个downvotes?为什么?因为OP不知道这个问题的答案?如果每个人都已经知道不会犯这样的错误,那么SO就不会存在。请删除你的提议或写评论,以解释你为什么downvoted? (至少OP可以做些什么...) – MatBailie
SQL Server 2008还允许表值参数。这使您可以将数据集作为参数提供给存储过程。 – MatBailie