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.

Preguntas similare

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.

Respuesta Responder a este mensaje
#2 Alejandro Mesa
22/03/2005 - 14:01 | Informe spam
José Antonio,

Ve a Query Analyzer, localiza el procedimiento en question, has click
derecho sobre el y escoje la opcion de editarlo. Cuales son los seteos de
ANSI_NULLS y QUOTED_IDENTIFIER que aparecen asociados al procedimineto?


AMB

"José Antonio" wrote:

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.



Respuesta Responder a este mensaje
#3 José Antonio
22/03/2005 - 14:44 | Informe spam
Estas son las opciones que se ven en la vista en el analizador de consultas:

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

"Maxi" escribió en el mensaje
news:
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.





Respuesta Responder a este mensaje
#4 José Antonio
22/03/2005 - 14:46 | Informe spam
Las opciones que tiene el procedimiento al principio son estas:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO

No entiendo por que no coje las de la base de datos.

"Alejandro Mesa" escribió en el
mensaje news:
José Antonio,

Ve a Query Analyzer, localiza el procedimiento en question, has click
derecho sobre el y escoje la opcion de editarlo. Cuales son los seteos de
ANSI_NULLS y QUOTED_IDENTIFIER que aparecen asociados al procedimineto?


AMB

"José Antonio" wrote:

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.



Respuesta Responder a este mensaje
#5 José Antonio
22/03/2005 - 14:57 | Informe spam
Me he datos cuenta que todos los SP que modifico se ponen con la opcion
ANSI_NULLS a OFF.

Como puedo hacer para que estas opciones se queden fijas para todas las
conexiones?

"José Antonio" escribió en el
mensaje news:Oz$
Las opciones que tiene el procedimiento al principio son estas:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO

No entiendo por que no coje las de la base de datos.

"Alejandro Mesa" escribió en el
mensaje news:
José Antonio,

Ve a Query Analyzer, localiza el procedimiento en question, has click
derecho sobre el y escoje la opcion de editarlo. Cuales son los seteos de
ANSI_NULLS y QUOTED_IDENTIFIER que aparecen asociados al procedimineto?


AMB

"José Antonio" wrote:

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.









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida