有没有一种优雅的方法来处理将 id 列表作为参数传递给存储过程的问题?
例如,我希望我的存储过程返回部门1、2、5、7、20。在过去,我已经传递了一个逗号分隔的 id 列表,像下面的代码,但感觉真的很肮脏这样做。
我认为 SQLServer2005是我唯一适用的限制。
create procedure getDepartments
@DepartmentIds varchar(max)
as
declare @Sql varchar(max)
select @Sql = 'select [Name] from Department where DepartmentId in (' + @DepartmentIds + ')'
exec(@Sql)