将 nvarchar 值 '' 转换为数据类型 int 时转换失败

问题描述 投票:0回答:2

虽然这听起来像是初学者 101 问题,但我认为它有点复杂。

我有两个 SQL Server 实例,一个是主数据库的日志传送只读/只读备用副本,用于报告目的。

它们都是 64 位 SQL 2005,SP3。

LogShipped 实例为:9.00.4035.00(标准版) 原始实例是:主动/被动集群中的 9.00.4035.00(企业版)。

两者的服务器排序规则均为 Latin1_General_CI_AI,并且都在 Server 2003 64 位上运行。

我有一个查询可以在主数据库服务器上正常运行和执行,但在备用/只读副本上失败,并将 nvarchar 转换为 int。

代码是相同的,我从主实例查询窗口复制并粘贴它只是为了仔细检查。

SQL Server 中是否存在错误?如果需要,我可以粘贴查询(它是带有一些内联表的沼泽标准选择)

只是不明白为什么它可以在一个上运行,但日志传送的副本却失败了。

非常感谢任何指点。

--编辑

我找到了罪魁祸首..事务日志数据库包含主数据库中不存在的无效数据..为什么它们不同步我还不知道,因为事务日志传送仍在工作并且我没有错误在工作经历中。

只有一些无效的孤立记录不在主数据库中..多么奇怪

sql sql-server-2005
2个回答
0
投票

确定数据相同吗?

如果你尝试

select convert(int, char(10))

它可能会得到类似的错误,因此如果您要转换的值是 char(10),您的查询将会失败,这在查看数据时可能并不明显。


0
投票

检查任何触发器是否正在根据您的表更新任何视图(具有特定列的 int )

© www.soinside.com 2019 - 2024. All rights reserved.