Hola a todos:
Estoy intentando hacer una select con un procedimiento almacenado sobre una
tabla llamada TiposUsuarios, pero quiero pasar en un único parámetro la
condición para la IN.
La tabla TiposUsuarios tiene el siguiente formato:
id_TipoUsuario int
Descripcion varchar(255)
y el procedimieento que quiero usar es algo así:
CREATE PROCEDURE SpSelectTiposUsuariosIN
@ListaIdTipoUsuario varchar(255)
AS
SELECT id_TipoUsuario, Descripcion
FROM TiposUsuarios
WHERE id_TipoUsuario in (@ListaIdTipoUsuario)
Y quiero llamarlo de la siguiente forma:
SpSelectTiposUsuariosIN '1,2,3,6'
El error que me da es:
Servidor: mensaje 245, nivel 16, estado 1, procedimiento
SpSelectTiposUsuariosIN, línea 4
Error de sintaxis al convertir el valor varchar '1,2,3,6' para una columna
de tipo de datos int.
Ya se que podría solventar este problema haciendo que la ejecución de la
select fuese dinámica del tipo:
EXECUTE sp_executesql @SQLString
donde @SQLString sería la select generada dinámicamente.
Me gustaría saber si se puede hacer una manera más elegante
Gracias y un saludo.
Gus.
Leer las respuestas