2010-12-03 12 views

Respuesta

31

probar esto:

begin try 

    --your inserts here 

end try 
begin catch 
    --returns the complete original error message as a result set 
    SELECT 
     ERROR_NUMBER() AS ErrorNumber 
     ,ERROR_SEVERITY() AS ErrorSeverity 
     ,ERROR_STATE() AS ErrorState 
     ,ERROR_PROCEDURE() AS ErrorProcedure 
     ,ERROR_LINE() AS ErrorLine 
     ,ERROR_MESSAGE() AS ErrorMessage 

    --will return the complete original error message as an error message 
    DECLARE @ErrorMessage nvarchar(400), @ErrorNumber int, @ErrorSeverity int, @ErrorState int, @ErrorLine int 
    SELECT @ErrorMessage = N'Error %d, Line %d, Message: '+ERROR_MESSAGE(),@ErrorNumber = ERROR_NUMBER(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE(),@ErrorLine = ERROR_LINE() 
    RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState, @ErrorNumber,@ErrorLine) 
end catch 
+0

dulce, que es un poco práctico de código gracias! –

+2

Si agrega "CON REGISTRO" al final de RAISERROR, colocará una copia del error en el registro de la aplicación SQL Server. Tenga en cuenta estas reglas "Registra el error en el registro de errores y el registro de la aplicación para la instancia del motor de base de datos Microsoft SQL Server. Los errores registrados en el registro de errores están actualmente limitados a un máximo de 440 bytes. Solo un miembro del servidor fijo sysadmin rol o un usuario con permisos ALTER TRACE puede especificar CON REGISTRO ". –

+0

Estaba teniendo este mensaje de error sin información cuando el panel de editor de texto de 15 sql estaba abierto, cerré todos los paneles de editor de texto sql y abrí el script para ejecutarlo ... – dankyy1

Cuestiones relacionadas