如何让 SQL Server 2008r2 向我显示错误?
Posted
技术标签:
【中文标题】如何让 SQL Server 2008r2 向我显示错误?【英文标题】:How do I get SQL server 2008r2 to show me the Errors? 【发布时间】:2010-12-03 16:47:23 【问题描述】:我正在运行一个插入脚本,该脚本应该从 SSMS 将 13,381 行插入到空白数据库中。它告诉我“查询完成但有错误”并且只插入 13357 行。
错误列表中没有显示任何内容。如何定位脚本中的错误?
谢谢!
【问题讨论】:
我刚刚遇到了类似的问题,显然是因为批量太大。我已经用 GO 语句将我的批次分成 4 个部分,但它不能正常工作而不会失败。 【参考方案1】:试试这个:
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
【讨论】:
如果您在 RAISERROR 末尾添加“WITH LOG”,它将在 SQL Server 应用程序日志中放置一份错误副本。请注意这些规则“在错误日志和 Microsoft SQL Server 数据库引擎实例的应用程序日志中记录错误。错误日志中记录的错误当前限制为最大 440 字节。只有 sysadmin 固定服务器的成员角色或具有 ALTER TRACE 权限的用户可以指定 WITH LOG。" 当 15 sql 文本编辑器面板打开时,我收到此错误消息但没有任何信息,我关闭了所有 sql 文本编辑器面板并打开脚本以运行和工作.. 这执行了脚本,但 55 分钟后出现此错误:A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
@stom 这是一个互联网连接问题。以上是关于如何让 SQL Server 2008r2 向我显示错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 sql server 2008r2 中将行名更改为列名
数据库请教:如何在本地连接服务器sqlserver 2008R2?