虽然这听起来像是初学者 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 中是否存在错误?如果需要,我可以粘贴查询(它是带有一些内联表的沼泽标准选择)
只是不明白为什么它可以在一个上运行,但日志传送的副本却失败了。
非常感谢任何指点。
--编辑
我找到了罪魁祸首..事务日志数据库包含主数据库中不存在的无效数据..为什么它们不同步我还不知道,因为事务日志传送仍在工作并且我没有错误在工作经历中。
只有一些无效的孤立记录不在主数据库中..多么奇怪
您确定数据相同吗?
如果你尝试
select convert(int, char(10))
它可能会得到类似的错误,因此如果您要转换的值是 char(10),您的查询将会失败,这在查看数据时可能并不明显。
检查任何触发器是否正在根据您的表更新任何视图(具有特定列的 int )