SQL Server 错误代码都有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 错误代码都有哪些相关的知识,希望对你有一定的参考价值。

HY000 所有绑定列都是只读的。
解释:必须是可升级的列,以使用 SQLSetPos 或 SQLBulkOperations 更改或插入行。
HY000 已检测到一个旧 netlib (%s)。请删除并重新启动应用程序。
解释:正在装载的 netlib 已过期。驱动程序请求一个较新的 netlib。
问题可能出在应用程序当前目录中的 netlib,正在装载的是这个 netlib,而不是系统目录中的那个。也可能是该 netlib 安装不当或已损坏。如果错误文本中所指定的 netlib 存在于 Windows 系统目录外的其它地方,请将其删除。如果 netlib 只存在于系统目录中,在客户端安装客户实用工具,然后重新启动应用程序。
HY000 尝试将 NULL 值大容量复制到不接受 NULL 值的 Server 列中。
解释:字段包含 NULL 值,但列不允许 NULL 值。

HY000 尝试将过大的列大容量复制到 SQL Server。
解释:为列提供的长度大于表中的列定义。

HY000 尝试读取 BCP 格式文件的未知版本。
解释:bcp 格式文件中的标题行采用了不可识别的版本。

HY000 错误的大容量复制方向。必须是 IN 或者 OUT。
解释:bcp_init 调用没有为 eDirection 参数指定有效的方向。

HY000 错误的终止符。

解释:bcp_bind 中提供的终止符字符串无效。

HY000 Bcp 主文件必须至少包含一列。
解释:未选定任何要装载的列。

HY000 无法生成 SSPI 上下文。
解释:驱动程序无法获得集成安全性所要求的 SSPI 上下文。本机错误将包含该 Win32 错误代码。

HY000 无法初始化 SSPI 包。
解释:驱动程序无法获得集成安全性所要求的 SSPI 上下文。本机错误将包含该 Win32 错误代码。

HY000 通讯模块无效。未正确安装驱动程序。
解释:网络库 .dll 已损坏。在客户端安装客户实用工具,然后重新启动应用程序。

HY000 连接忙,结果针对另一个 hstmt。
解释:SQL Server ODBC 驱动程序只允许一个活动的 hstmt。有关更多信息,请参见使用默认结果集。

HY000 未对 BCP 启用连接。
解释:使用 BCP API 的应用程序必须在连接之前设置 SQLSetConnectAttr 或 SQL_SS_COPT_BCP 特性。

HY000 关闭连接时失败。
解释:网络库中的 ConnectionClose 函数失败。此问题通常是由网络或 SQL Server 问题引起的。

HY000 对于 BCP,必须对所有变长数据指定长度前缀或终止符。
解释:用 SQL_VARYLEN_DATA 调用了 bcp_bind,但未指定前缀长度或终止符。

HY000 只有在复制到服务器中时,才能跳过主文件列。
解释:bcp out 格式文件指定应跳过列。不允许进行这种指定。创建一个视图,其中只包含所需列和该视图的 bcp out,或使用 -Q 标志提供一个只选择所需列的 SELECT 语句。

HY000 在 BCP 格式文件中找到不正确的主列号。
解释:格式文件所包含的列号大于表中的列数。

HY000 在读取 bcp 数据文件时发生 I/O 错误。
HY000 在读取 BCP 格式文件时发生 I/O 错误。
HY000 写入 bcp 数据文件时发生 I/O 错误。
HY000 在写入 bcp 错误文件时发生 I/O 错误。
HY000 无效选项。
解释:到 bcp_control 的 eOption 参数无效。

HY000 默认参数后面不允许有非默认参数。
解释:在任何已用默认值进行指定的参数后面,存储过程的参数不能有非默认值。

HY000 没有足够的列绑定。
解释:对于 bcp out,未绑定表的所有列。创建一个视图,其中只包含所需列和该视图的 bcp out,或使用 -Q 标志提供一个只选择所需列的 SELECT 语句。

HY000 ODBC BCP/驱动程序版本不匹配。
解释:Sqlsrv32.dll 和 Odbcbcp.dll .dll 不具有相同的版本。在客户端安装客户实用工具,然后重新启动应用程序。

HY000 TDS 流中发生协议错误。
解释:服务器的 TDS 流无效。此问题一般是由 SQL Server 问题引起的。请查看SQL Server 错误日志。

HY000 表中包含的行数小于第一个行计数。
解释:提供了起始行号,但服务器上的表未包含那些行数。未向主文件复制任何行。

HY000 表中包含的行数小于最后一个行计数。

解释:提供了结束行号,但服务器上的表未包含那些行数。

HY000 表没有 text/image 列。

解释:调用了 bcp_moretext,但表不包含任何 text 或 image 列。

HY000 TDS 缓冲区长度过大。

解释:服务器的 TDS 流无效。此问题一般是由 SQL Server 问题引起的。请查看SQL Server 错误日志。
HY000 文本列数据不完整。

解释:bcp_moretext 所提供的长度的总和与 bcp_bind 或 bcp_collen 中所提供的长度不匹配。

HY000 BCP 主文件包含的行数小于第一个行计数。

解释:提供了起始行号,但主文件未包含那些行数。未装载任何行。
HY000 行长度超过了 SQL Server 所允许的最大长度。

解释:行的数据长度的总和大于最大行大小。

HY000 无法在服务器上找到完成此操作所需的存储过程(用 SQL Server 提供)。请与系统管理员联系。

解释:通过执行 \Msqql\Install\Instcat.sql 安装 ODBC 目录存储过程。

HY000 无法装载通讯模块。未正确安装驱动程序。

解释:此客户端上不存在为该连接指定的网络库 .dll。在客户端安装客户实用工具,然后重新启动应用程序。

HY000 无法打开 BCP 主数据文件。
解释:在 bcp_init 调用中指定的文件名不存在,或已由另一个应用程序打开。

HY000 无法打开 BCP 错误文件。

解释:在 bcp_init 调用中指定的错误文件名不存在,或已由另一个应用程序打开。

HY000 无法读取驱动程序版本。

解释:驱动程序无法在其 .DLL 中读取版本块。在客户端安装客户实用工具,然后重新启动应用程序。

HY000 在 BCP 数据文件中遇到意外 EOF。
解释:在执行 bcp in 操作过程中,在处理最后一行的过程中,检测到了文件结尾。通常,这是由于原始表和正在装载的表具有不同的列数、类型、为空性或大小而造成的。
HY000 Unicode 转换失败。

解释:在和 Unicode 字符串之间进行转换时出错。本机错误将包含该 Win32 错误代码。

HY000 Unicode 转换失败。必须在客户系统上安装 SQL server 代码页。

解释:服务器代码页必须在客户端存在,方能执行正确的操作。清除 DSN 的"自动转换"复选框,或在客户端安装服务器的代码页。运行 EXEC sp_server_info 18 可以确定服务器代码页。

HY000 从 SQL Server 接收到未知的令牌环。

解释:服务器的 TDS 流无效。此错误一般是由服务器上的问题引起的。请查看SQL Server 错误日志。
HY000 警告:部分插入/更新。插入或更新 text 或 image 列不成功。
解释:在插入或更新 text、image 或 ntext 列的过程中发生了错误。该列将包含不正确的数据。如果可能,请回滚事务。
参考技术A 都在这个表中
select * from sys.messages

SQL Server 中使用镜像、日志传送、复制和集群的场景都有哪些

【中文标题】SQL Server 中使用镜像、日志传送、复制和集群的场景都有哪些【英文标题】:What are the scenarios for using mirroring, log shipping, replication and clustering in SQL ServerSQL Server 中使用镜像、日志传送、复制和集群的场景有哪些 【发布时间】:2010-10-06 06:05:57 【问题描述】:

据我所知,SQL Server 提供了 4 种技术来提高可用性。

我认为这些是主要的使用场景,总而言之:-

1) 复制将主要适用于在线-离线数据同步场景(笔记本电脑、移动设备、远程服务器)。

2) 日志传送可用于手动切换故障转移服务器,而

3) 数据库镜像是一种自动故障转移技术

4) 故障转移集群是一种高级数据库镜像。

我说的对吗?

谢谢。

【问题讨论】:

优秀的答案。我想补充一件事。现在快到 2013 年了。女士建议不要使用镜像。它最终会消失。此外,镜像仅限于一个合作伙伴。 【参考方案1】:

故障转移群集是一种可用性技术,可在硬件级别提供冗余,并且构建在 Windows 群集技术之上,即它并非特定于 SQL Server。

例如,服务器 A 上的处理器发生故障。幸运的是,服务器 A 是 SQL Server 群集的一部分,因此服务器 B 在几秒钟内就接管了提供 SQL Server 服务的工作。所有这些都是自动发生的,并且对数据库用户和/或集群所服务的应用程序是透明的。

数据库镜像和集群之间的主要区别在于 SQL 集群在实例级别提供冗余,而数据库镜像在数据库级别提供冗余。

以下链接提供了您可能会发现使用的这两种技术之间的比较。

http://msdn.microsoft.com/en-us/library/ms191309(SQL.90).aspx

日志传送更多地被认为是一种冗余技术。

例如,它可用于提供主环境的完整副本,通常用作可手动联机的热备用。这可用于为您的备份策略提供额外的冗余。 通过在备用位置/服务器上创建生产数据库的只读副本,日志传送还可用于从主服务器卸载报告。

复制是一种非常多样化的技术,可用于满足许多不同的场景,其中的选择将决定所实施的特定复制类型。

例如,合并复制可用于通过将应用程序的工作负载分散到多个服务器(即分布式处理架构)来支持分布式处理。

合并复制通常需要一个相对了解其环境的应用程序。还必须考虑冲突解决等技术,以确保整个集成环境中的数据一致性。

事务复制可以以类似的方式用于记录传送,但是您可以限制复制到订阅者的特定对象。如果报表只需要一部分表,这将很有用。

我希望这可以为您解决一些问题。您可以在 SQL Server 在线书籍中找到有关每种技术的大量文档,或者在 Google 中搜索每种技术。也就是说,如果您有任何具体问题,我很乐意为您提供帮助,因此请随时联系我。

干杯,约翰

【讨论】:

【参考方案2】:

在 SQL 2008 Enterprise 中,还有一种叫做变更数据捕获 (CDC) 的东西,我们在我工作的地方成功地使用了它。

我们有一个过度规范化的数据库,这使得获取信息变得非常困难。我们需要在将这些数据复制到另一台服务器以获取报告等的同时更改数据结构。

它对我们非常有效。

【讨论】:

我最近与一位使用 SQL Server 2005 的用户交谈,他还说他们的数据库过度规范化,他们将数据复制到报表服务器。数据库不应该同时处理事务和报告吗?为什么我必须投资 2 台服务器并进行复制?我认为这是一个开销。 @Chakra 这不是规则,它只是在您的服务器无法很好地使用用于生产工作负载和报告的数据库时使用。【参考方案3】:

AFAIK 日志传送和复制可能更适合反过来。

日志传送是计划同步,因此复制更适合手动切换,因为备份服务器将尽可能保持最新,除非您有任何通信问题(但是,日志传送也会有同样的问题)。

离线数据不像备份服务器那样对延迟敏感,但我个人认为根本不需要日志传送,我看不出它何时会是更合适的替代方案到复制(但可能是在 sql2005 之前没有实现复制)

也许我将复制与镜像混淆了,请注意,镜像不会为您提供自动故障转移,只有 HA-cluster 为您提供该功能,意思是:

至少使用 SQL Server 2005 标准、Windows Enterprise 和共享数据存储(如 SAN)。

【讨论】:

你错了。镜像具有故障转移功能,但只有在您使用见证 sql 实例时才会自动进行。镜像工作在数据库级别,它将事务发送到远程 sql 实例,如果它处于高安全模式,则仅在远程端运行事务时才会提交事务。与事务复制的区别在于它允许模式更改和添加表,因为它是一个完整的数据库镜像。复制绑定到数据库对象,因此如果您在数据库上创建新对象,它不会自动添加。 LogShipping 具有更高的同步延迟。 是的,在输入这​​个答案之前,进一步的调查给了我这个结论。但是,HA-cluster 具有镜像没有的两个节点之间完全切换的优势。故障转移后,您必须再次手动设置“向后”镜像。

以上是关于SQL Server 错误代码都有哪些的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server 忽略更新错误

sqlserver支持的字符集都有哪些

我的 NAudio 代码中都有哪些错误?

随着代码变得越来越复杂,都有哪些好的策略可以修复错误?

SQLClient 哪些错误号与 SQL Server 连接错误有关,所以我可以重试

Excel公式错误代码#NUM的解决方法都有哪些