Database SqlException错误代码
我有一个问题,这不是问题。 我的数据库有一些限制,例如唯一名称(存储必须唯一的名称的列) 在插入或更新时,db验证我们是否没有覆盖某个名称,如果是,则返回一个可转换为SqlException的错误,代码为2627 我的问题是。。。如果存在一些表格或我可以参考的东西,以指示最终用户应该做什么Database SqlException错误代码,database,sqlexception,error-code,Database,Sqlexception,Error Code,我有一个问题,这不是问题。 我的数据库有一些限制,例如唯一名称(存储必须唯一的名称的列) 在插入或更新时,db验证我们是否没有覆盖某个名称,如果是,则返回一个可转换为SqlException的错误,代码为2627 我的问题是。。。如果存在一些表格或我可以参考的东西,以指示最终用户应该做什么 在这种情况下。。存在一个同名的用户….我认为,您应该查看SqlExceptions,并查看哪个应该将您指向master.dbo.sysmessages表中的消息。我认为,您应该看看SqlExceptions,
在这种情况下。。存在一个同名的用户….我认为,您应该查看SqlExceptions,并查看哪个应该将您指向master.dbo.sysmessages表中的消息。我认为,您应该看看SqlExceptions,看看哪个应该指向master.dbo.sysmessages表中的消息。不要假设特定的错误代码总是指向同一个问题
select * from master.dbo.sysmessages where description like '%timeout%'
这将为您提供以下所有可能的错误消息-所有消息均带有代码1033
:
为超时提供的值无效。超时必须是介于0和2147483647之间的有效整数。1033
等待闩锁时发生超时:类“%ls”,id%p,类型%d,任务0x%p:%d,等待时间%d秒,标志0x%I64x,拥有任务0x%p。继续等待。1033
与远程服务器实例''%1!''的通信未能在超时之前完成。ALTER DATABASE命令可能尚未完成。请重试该命令。1033
数据库镜像超时值%d超过最大值32767。1033
由于锁定超时,未检查数据库ID(%d)中的元数据缓存项%d:%d的一致性。1033
标记的事务''%1!''失败。尝试通过提交标记的事务在日志中放置标记时发生超时。这可能是由与Microsoft分布式事务协调器(MS DTC)事务或其他1033事务争用引起的
SQL Server目标的大容量插入操作已超时。请考虑在数据流中增加SQLServer目标的超时属性的值。1033
…以及所有语言中的更多错误
所以可以安全地假设1033
意味着某种超时?不幸的是,即使这样也不是真的:
select description from master.dbo.sysmessages where msglangid=1033
警告:致命错误%d发生在%S\u日期。请记下错误和时间,并与系统管理员联系
Waitfor中不允许查询
靠近'%1!'的语法不正确
以'%1!'开头的%1!'消息太长。最大长度为%d。
如果语句包含UNION、INTERSECT或EXCEPT运算符,则ORDER BY项必须出现在选择列表中
订单编号%ld超出了选择列表中的项目数范围
还有更多与超时无关的错误
所以我坚持:
IsSqlTimeout = ((ex as SqlException).Message.ToUpper().Contains("TIMEOUT");
所以要真正回答你的问题——这取决于你的用户能够理解或应该被告知什么
我建议您记录一段时间内的所有错误(代码和消息),对它们进行分组,并查看您的环境中最常见的错误。不要假设特定的错误代码总是指同一问题
select * from master.dbo.sysmessages where description like '%timeout%'
这将为您提供以下所有可能的错误消息-所有消息均带有代码1033
:
为超时提供的值无效。超时必须是介于0和2147483647之间的有效整数。1033
等待闩锁时发生超时:类“%ls”,id%p,类型%d,任务0x%p:%d,等待时间%d秒,标志0x%I64x,拥有任务0x%p。继续等待。1033
与远程服务器实例''%1!''的通信未能在超时之前完成。ALTER DATABASE命令可能尚未完成。请重试该命令。1033
数据库镜像超时值%d超过最大值32767。1033
由于锁定超时,未检查数据库ID(%d)中的元数据缓存项%d:%d的一致性。1033
标记的事务''%1!''失败。尝试通过提交标记的事务在日志中放置标记时发生超时。这可能是由与Microsoft分布式事务协调器(MS DTC)事务或其他1033事务争用引起的
SQL Server目标的大容量插入操作已超时。请考虑在数据流中增加SQLServer目标的超时属性的值。1033
…以及所有语言中的更多错误
所以可以安全地假设1033
意味着某种超时?不幸的是,即使这样也不是真的:
select description from master.dbo.sysmessages where msglangid=1033
警告:致命错误%d发生在%S\u日期。请记下错误和时间,并与系统管理员联系
Waitfor中不允许查询
靠近'%1!'的语法不正确
以'%1!'开头的%1!'消息太长。最大长度为%d。
如果语句包含UNION、INTERSECT或EXCEPT运算符,则ORDER BY项必须出现在选择列表中
订单编号%ld超出了选择列表中的项目数范围
还有更多与超时无关的错误
所以我坚持:
IsSqlTimeout = ((ex as SqlException).Message.ToUpper().Contains("TIMEOUT");
所以要真正回答你的问题——这取决于你的用户能够理解或应该被告知什么
我建议您记录一段时间内的所有错误(代码和消息),对它们进行分组,并查看您的环境中最常见的错误。此处报告了各种错误代码的含义:。确保在左侧选择了正确的DB版本。此处报告了各种错误代码的含义:。确保在左侧选择了正确的DB版本。缺少括号:var IsSqlTimeout=((例如SqlException)。Message.ToUpper()包含(“超时”);缺少括号:var IsSqlTimeout=((例如作为SqlException.Message.ToUpper().Contains(“TIMEOUT”));