Estaba realizando un procedimiento almancenado donde se para por parametro una serie de "abonados" que despues son usados en el Where dentro de un IN.
os pongo la sentencia completa, es sobre SQL 2000
Código:
bien, a la hora de ejecutar el procedimientoCREATE PROCEDURE prc_00_pruebaIN -- Add the parameters for the stored procedure here @abonados nvarchar(1000) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here SELECT * FROM dbo.[system] WHERE cs_no IN (@abonados) DECLARE @sql AS VARCHAR(1000) SET @sql = 'SELECT * FROM dbo.[system] WHERE cs_no IN (' + @abonados + ')' PRINT @sql END GO
si pongo esto, no muestra datos
Código:
prc_00_pruebaIN '''BB0048'',''BB9682'''
Pero si pongo esto, si muestra datos
Código:
Como vereis hago un print para ver como construye la consulta, pero luego no me muestra nada cuando le paso por parametro mas de un "abonado"prc_00_pruebaIN 'BB0048'
Que es lo que estoy haciendo mal? o es que lo que estoy intentando hacer no se puede hacer.
Podria ejecutar un EXEC sp_execute @sql PERO la consulta real sobre la que he de aplicar esto, ocupa mas de los caracteres permitidos por un tipo Nvarchar por lo que no puedo construir la SQL dinamicamente...
Alguna idea/sugerencia/solucion???
muchas muchas gracias!!!