01/04/2011, 09:38
|
| | Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 10 meses Puntos: 0 | |
Problemas de Syntax con sentencia WITH en SQL 2000 Estimados, ojalá alguien me pueda ayudar.
Tenemos una aplicación hecha en VS.NET con SQL server 2005 y la estamos subiendo a un Hosting que funciona con Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) y usa un interfaz Web para asministrar las bases de datos llamado ASP.NET Enterprise Manager 0.1.3.
Ya creamos todas las tablas de la BD en el hosting y subimos casi todos los Store Procedure, salvo 1 que me arroja un error de sintaxis que el SQL 2005 No arroja.
El mensaje de error es el siguiente:
ERROR: Line 8:Incorrect syntax near ';'. Incorrect syntax near the keyword 'WITH'. Incorrect syntax near the keyword 'end'. Source: .Net SqlClient Data Provider.
He borrado el punto y coma ';' y he modificado los paréntesis basado en literatura de Internet pero sigue arrrojando otros errores de Sintaxis. Si alguien me puede ayudar se lo agradezco muchísimo!!!!! Gracias Anticipadas.
Les copio el SP:
CREATE PROCEDURE [dbo].[SP_REPROGRAMACION_REAL]
@cod_proyecto varchar(20),
@id_etapa varchar(20)
as
begin
;WITH afr1 AS (SELECT * FROM Avance_fisico_real)
update Avance_fisico_real
set
Cant_prog_parcial = afr1.Cant_prog_parcial,
Cant_prog_parcial_acum = afr1.Cant_prog_parcial_acum,
Cant_Avance_fisico = afr1.Cant_Avance_fisico,
Cant_avance_fisico_acum = afr1.Cant_avance_fisico_acum,
Porcen_prog_parcial = afr1.Porcen_prog_parcial,
Porcen_prog_parcial_acum = afr1.Porcen_prog_parcial_acum,
Porcen_real_parcial = afr1.Porcen_real_parcial,
Porcen_real_parcial_acum = afr1.Porcen_real_parcial_acum,
Costo_Planif_Parcial = afr1.Costo_Planif_Parcial,
Costo_Planif_Acum = afr1.Costo_Planif_Acum,
Costo_Teorico = afr1.Costo_Teorico,
Costo_Teorico_Acum = afr1.Costo_Teorico_Acum
from Avance_fisico_real afr2, afr1
where afr1.cod_proyecto = @cod_proyecto
and afr1.id_etapa = @id_etapa
and afr1.num_cambio_prog = ( select max(num_cambio_prog) - 1 from Avance_fisico_real
where cod_proyecto = afr1.cod_proyecto and
id_etapa = afr1.id_etapa and
Cod_partida = afr1.cod_partida and
Año = afr1.año and
Mes = afr1.mes and
semana = afr1.semana)
and (afr2.cod_proyecto = afr1.cod_proyecto
and afr2.id_etapa = afr1.id_etapa
and afr2.num_cambio_prog = afr1.num_cambio_prog + 1
and afr2.Año = afr1.Año
and afr2.Mes = afr1.Mes
and afr2.semana = afr1.semana
and afr2.cod_partida = afr1.cod_partida)
;WITH vf1 AS (SELECT * FROM Vista_Fisico)
update Vista_Fisico
set
Proyectado = vf1.Proyectado,
Real = vf1.Real,
Cumplimiento = vf1.Cumplimiento,
estado = vf1.estado
from Vista_Fisico vf2, vf1
where vf1.cod_proyecto = @cod_proyecto
and vf1.id_etapa = @id_etapa
and vf1.num_cambio_prog = (select max(num_cambio_prog) - 1 from Vista_Fisico where cod_proyecto = @cod_proyecto and id_etapa = @id_etapa )
and (vf2.cod_proyecto = vf1.cod_proyecto
and vf2.id_etapa = vf1.id_etapa
and vf2.num_cambio_prog = vf1.num_cambio_prog + 1
and vf2.Año = vf1.Año
and vf2.Mes = vf1.Mes
and vf2.semana = vf1.semana)
end |