Procedimiento almacenado de T-SQL que acepta múltiples valores de Id.

¿Hay alguna manera elegante de manejar pasar una lista de identificadores como parámetro a un procedimiento almacenado?

Por ejemplo, quiero que los departamentos 1, 2, 5, 7, 20 sean devueltos por mi procedimiento almacenado. En el pasado, pasé una lista de identificadores delimitados por comas, como el código a continuación, pero me siento muy sucio haciéndolo.

SQL Server 2005 es mi única limitación aplicable, creo.

create procedure getDepartments
  @DepartmentIds varchar(max)
as
  declare @Sql varchar(max)     
  select @Sql = 'select [Name] from Department where DepartmentId in (' + @DepartmentIds + ')'
  exec(@Sql)

Respuestas a la pregunta(6)

Su respuesta a la pregunta