我的项目有一个新的增强功能,我需要添加一个新的文本框过滤器,我必须允许输入多个值。
显然我在当前程序中使用“like”作为单值参数。
WHERE (@_adFirstName IS NULL OR firstName LIKE @_adFirstName + '%')
AND (@_adLastName IS NULL OR lastName LIKE @_adLastName + '%')
稍后我需要使用“IN”表示多个值。在这种情况下,程序执行的影响是什么。
答案 0 :(得分:1)
您没有指定您的sql server版本,但自2008年以来sql server支持表值参数。我发现这是将变量列表传递给存储过程的最有效方法。
你可以在[我对这里的另一个问题的回答]中找到关于它是如何完成的完整描述。 (How to pass string array in SQL parameter to IN clause in SQL)