2009-08-07 65 views
27

Tengo un problema con un procedimiento almacenado de actualización. El error esACTUALIZACIÓN fallida porque las siguientes opciones de SET tienen configuraciones incorrectas: 'QUOTED_IDENTIFIER'

UPDATE error porque las siguientes opciones de SET tienen una configuración incorrecta: 'QUOTED_IDENTIFIER'. Verifique que las opciones de SET sean correctas para usar con vistas indexadas y/o índices en columnas calculadas y/o notificaciones de consulta y/o métodos de tipo de datos xml.

Desafortunadamente, no hay vistas indizadas/columnas calculadas/notificaciones de consulta para esta tabla. Este SP estuvo funcionando bien durante los últimos días y desde hoy ha estado devolviendo este error.

¿Hay alguna sugerencia que ayude a identificar el problema?

Nota: si configuro el quoted_identifier en ON y vuelvo a ejecutar el proceso de creación, el problema se solucionará por ahora, pero quiero entender qué provocó este problema en primer lugar.

+0

¿podría por favor especificar qué configuración? – balalakshmi

Respuesta

2

No podemos crear una vista indizada al desactivar el identificador entre comillas. Acabo de probarlo y SQL 2005 arroja un error de inmediato si está apagado:

No se puede crear el índice. El objeto 'SmartListVW' se creó con las siguientes opciones SET desactivadas: 'QUOTED_IDENTIFIER'.

Como dijo gbn, reconstruir los índices debe ser la única otra forma en que se apagó.

He visto muchos artículos que dicen que debe estar activado antes de crear un índice de vistas. De lo contrario, se obtendría un error al insertar, actualizar la tabla, pero aquí puedo obtener el error inmediatamente, por lo que el motor sql no permitirá crear un índice en las vistas al desactivarlo, por este msdn link.

he hecho una pregunta similar aquí in stack hace algún tiempo ...

EDITAR

Apagué la queryexecution mundial (editor) configuración ANSI y corrió el guión índice en nuevo editor, este tiempo también arroja el mismo error. Por lo tanto, está claro que no podemos crear índices en las vistas desactivando quoted_identifier.

2

Algunas ideas:

¿Se han reconstruido los índices? Si indexa el mantenimiento utilizando DMO, entonces no siempre se conservará el identificador de cita. Es una pintura para rastrear y era un problema particular es SQL Server 2000 hasta SP4 más o menos.

Sin embargo, he visto en SQL Server 2005 hace un tiempo también.

30

que tenía que añadir

SET ANSI_NULLS, QUOTED_IDENTIFIER ON 

para todos mis procedimientos almacenados edición de una tabla con una columna calculada ... (no en el proc, en lugar durante la creación) para evitar que el error, así:

SET ANSI_NULLS ON 

go 

SET QUOTED_IDENTIFIER ON 

go 

create proc dbo.proc_myproc 

... 
2

Llego tarde a esta fiesta pero tuve este error y quería compartirlo.

Nuestro problema era recurrente pero aleatorio, así que sabíamos que no era un objeto que se había creado incorrectamente.

Finalmente lo rastreamos hasta una conexión ODBC en uno de los servidores de nuestra granja Citrix. En ese servidor, el ODBC en cuestión tenía sus QUOTED_IDENTIFIERS desactivados (sin marcar). En todos los otros servidores, se verificó como se esperaba. Activamos la opción y el problema se solucionó al instante.

0

Recibí este error hoy al ejecutar un procedimiento almacenado en SSMS. Desconectarme del servidor y volver a conectarme con una nueva sesión resolvió el problema para mí. El SP que estaba ejecutando nunca había tenido este problema antes.

Cuestiones relacionadas