Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/07/2010, 04:24
jaimecb
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta @Parametro en el IN de una consulta SQL

Buenas a todos,

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:
CREATE 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
bien, a la hora de ejecutar el procedimiento

si pongo esto, no muestra datos
Código:
prc_00_pruebaIN '''BB0048'',''BB9682'''

Pero si pongo esto, si muestra datos
Código:
prc_00_pruebaIN 'BB0048'
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"

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!!!