Error en un SP que hace un select a una vista indizada.

22/03/2005 - 11:00 por José Antonio | Informe spam
Hola, me he decidido a utilizar vistas indexadas porque las he probado y he
llegadoa la conclusión que en la mayoria de los casos donde se debe de
acumular informacion son una buena opcion, mas facil que utilizar triggers y
crear una tabla para guardar los acumulados.

Pero me encuentro con problemas de opciones que soluciono poco a poco.

A este error que os planteo no encuentro una solución.

Para que todas las conexiones que acceden a la base de datos tengan las
mismas opciones, estas se las he puesto por defecto a la propia base de
datos con

ALTER DATABASE GESTION
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET NUMERIC_ROUNDABORT OFF.

Sin embargo al ejecutar los procedimiento almacenados me da el siguiente
error y no consigo solucinarlo, ni borrando el procedimiento y volviendolo a
hacer.

Este es el error y el uno de los select que hago en los SP.

Utilizo el with (noexpand) por que me he dado cuenta que si no se utliza,
aunque la vista tenga indices, sql server accede a la tabla en vez de a la
vista, no considerandola como vista indizada.

Servidor: mensaje 1934, nivel 16, estado 1, procedimiento CG_ACUMULADOS,
línea 9
[Microsoft][ODBC SQL Server Driver][SQL Server]Error de SELECT porque las
siguientes opciones SET tienen una configuración incorrecta: 'ANSI_NULLS.,
QUOTED_IDENTIFIER'.

SELECT CASE WHEN GROUPING(MES)=1 THEN 15 ELSE MES END AS MES,SUM(DEBE)AS
DEBE,SUM(HABER) AS HABER,SUM(SALDO) AS SALDO,CAST(0 AS DECIMAL) AS
ACUDEBE,CAST(0 AS DECIMAL) AS ACUHABER,CAST(0 AS DECIMAL) AS ACUSALDO FROM
VT_MENSUAL WITH (NOEXPAND) WHERE EMPRESA=@EMPRESA AND CUENTA=@CUENTA AND
MES>=@DESDEMES AND MES<=@HASTAMES GROUP BY MES WITH ROLLUP

Necesito su ayuda.

Saludos.
 

Leer las respuestas

#1 Maxi
22/03/2005 - 13:20 | Informe spam
Hola Jose, y las opciones esas estan iguales que las que tiene la Vista?,
ahi tienes el problema


Salu2
Maxi


"José Antonio" escribió en el
mensaje news:
Hola, me he decidido a utilizar vistas indexadas porque las he probado y
he llegadoa la conclusión que en la mayoria de los casos donde se debe de
acumular informacion son una buena opcion, mas facil que utilizar triggers
y crear una tabla para guardar los acumulados.

Pero me encuentro con problemas de opciones que soluciono poco a poco.

A este error que os planteo no encuentro una solución.

Para que todas las conexiones que acceden a la base de datos tengan las
mismas opciones, estas se las he puesto por defecto a la propia base de
datos con

ALTER DATABASE GESTION
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET NUMERIC_ROUNDABORT OFF.

Sin embargo al ejecutar los procedimiento almacenados me da el siguiente
error y no consigo solucinarlo, ni borrando el procedimiento y volviendolo
a hacer.

Este es el error y el uno de los select que hago en los SP.

Utilizo el with (noexpand) por que me he dado cuenta que si no se utliza,
aunque la vista tenga indices, sql server accede a la tabla en vez de a la
vista, no considerandola como vista indizada.

Servidor: mensaje 1934, nivel 16, estado 1, procedimiento CG_ACUMULADOS,
línea 9
[Microsoft][ODBC SQL Server Driver][SQL Server]Error de SELECT porque las
siguientes opciones SET tienen una configuración incorrecta: 'ANSI_NULLS.,
QUOTED_IDENTIFIER'.

SELECT CASE WHEN GROUPING(MES)=1 THEN 15 ELSE MES END AS MES,SUM(DEBE)AS
DEBE,SUM(HABER) AS HABER,SUM(SALDO) AS SALDO,CAST(0 AS DECIMAL) AS
ACUDEBE,CAST(0 AS DECIMAL) AS ACUHABER,CAST(0 AS DECIMAL) AS ACUSALDO FROM
VT_MENSUAL WITH (NOEXPAND) WHERE EMPRESA=@EMPRESA AND CUENTA=@CUENTA AND
MES>=@DESDEMES AND MES<=@HASTAMES GROUP BY MES WITH ROLLUP

Necesito su ayuda.

Saludos.

Preguntas similares