如何让SQL Server 2008r2向我显示错误?

Chr*_*ick 23 sql sql-server sql-server-2008 sql-server-2008-r2

我正在运行一个插入脚本,该脚本应该从SSMS将13,381行插入到空白数据库中.它告诉我"查询已完成但有错误"并且只插入了13357行.

错误列表中没有显示任何内容.如何找到脚本中的错误?

谢谢!

KM.*_*KM. 35

试试这个:

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
Run Code Online (Sandbox Code Playgroud)

  • 如果在RAISERROR末尾添加"WITH LOG",它将在SQL Server应用程序日志中放置一个错误副本.请注意这些规则"记录错误日志中的错误和Microsoft SQL Server数据库引擎实例的应用程序日志.错误日志中记录的错误当前限制为最多440个字节.只有sysadmin固定服务器的成员角色或具有ALTER TRACE权限的用户可以指定WITH LOG." (2认同)