Pregunta

Estoy buscando a un error de una de nuestras aplicaciones web, y se llama a un procedimiento almacenado que fue responsable de la actualización de un registro en la base de datos.

Este procedimiento almacenado ha trabajado durante semanas sin problemas.Entonces, un día ella comenzó a tirar errores, mientras que la depuración hemos encontrado la causa a estar dentro del procedimiento almacenado.

Básicamente había una declaración como esta

Begin
  // Do Stuff

  Set
End

Por lo que el SET en realidad nunca ponga nada.Por alguna razón esto funciona perfectamente bien en nuestro servidor y se ejecuta bien en un servidor de cliente hasta hoy cuando se decidió a empezar a quejarse.(Incorrecto error de Sintaxis)

Hay algún tipo de configuración de SQL Server que podría provocar este cambio repentino en el comportamiento?

Aclaración - La SET siempre ha sido en los procedimientos.Y la ejecución de un SET por sí mismo, o como una única declaración en un procedimiento almacenado no en el hecho de trabajar para mí.Este es el problema, no trabajo.¿Hay algo que podría causar que el trabajo, cuando debería estar fallando?

¿Fue útil?

Solución

A procedimiento con un SET como que normalmente fallará para compilar, incluso si el SET no se puede alcanzar:

alter procedure dbo.testproc as
    begin
    return 1;
    set
    end

Incorrect syntax near the keyword 'SET'.

Desde falla el altar, no puedo ver cómo el procedimiento podría terminar en su base de datos en el primer lugar?

O tal que se estaba ejecutando en modo de compatibilidad para SQL Server 2000 (que todavía se permite esto.) Cambio de la Mdoe compatibilidad con SQL Server 2005 o superior sería entonces romper el procedimiento.

Otros consejos

Al ejecutar "SET", por sí mismo, se generará un error. Originalmente iba a sugerir que podría tener ramificaciones de código (FI, devoluciones, GOTOs, etc.) que causaron la línea para no ser alcanzado ... pero me parece que no puedo crear un procedimiento almacenado que contiene esto como un stand- sola declaración.

¿Puede crearse

Si la escritura a cabo el procedimiento y tratar de volver a crearlo (con un nombre diferente),?

Podría valer la pena publicar ese guión, o tanto él como su son decisiones públicas cómoda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top