Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2008, 21:22
Silm
 
Fecha de Ingreso: mayo-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Problema con variables en SQL dinámico

Hola a todos!

Estoy armando una consulta dinámica en SQL para recibir diversas variables, según filtros elegidos por los usuarios, pero el problema que tengo es al momento de poner la variable dentro de la sentencia del SELECT.

Este es mi sp:

create procedure sp_reporte_prueba
@fechainicial datetime,
@fechafinal datetime
AS
declare @sqlstring as nvarchar(4000)

SET @SQLString = N' SELECT id_historico, tienda.nombre AS Cadena, Sucursal, Fecha, status.descripción AS '+char(39)+'Descripción de estatus'+char(39)+', Monto, Descripcion, tienda.analistaresponsable AS Responsable
FROM tienda INNER JOIN matrizhistorico ON tienda.id_tienda = matrizhistorico.sucursal INNER JOIN status ON matrizhistorico.id_estatus = status.id_status'

SET @SQLString = @SQLString + N' WHERE matrizhistorico.fecha BETWEEN @fechainicial AND @fechafinal ORDER BY Sucursal, Fecha, status.descripción DESC'
PRINT @SQLString
EXECUTE sp_executesql @SQLString

Ahora bien lo ejecuto de la siguiente manera:

exec sp_reporte_prueba '2008-01-01', '2008-06-06'

Lo que me retorna el siguiente error:

Server: Msg 137, Level 15, State 2, Line 2
Must declare the variable '@fechainicial'.

Intente poniendo ' + @Fechainicial + ' pero me marca el error: Error converting datetime from string, palabras más palabras menos...

De antemano les agradezco cualquier ayuda, muchas gracias por su tiempo!!