【问题标题】:getting error in SQL Server 2000 but not in SqlServer 2005在 SQL Server 2000 中出现错误,但在 SqlServer 2005 中没有
【发布时间】:2009-09-01 11:56:09
【问题描述】:

我正在执行存储过程,但在 sqlserver 2000 中出现错误提示“错误 SQL Server 数据库错误:将数据类型 varchar 转换为 int。”。但是当我在 Sql server 2005 中执行相同的存储过程时,我是没有出现任何错误并显示结果。

有人对此有想法吗?请帮帮我。

谢谢 鲁巴

【问题讨论】:

  • 您在两个数据库中使用的数据和/或参数是否完全相同?
  • 是的..我在 sqlserver 2000 和 2005 中都执行了相同的过程。
  • 你能找出转化者吗?

标签: sql-server sql-server-2005 sql-server-2000


【解决方案1】:

这可能取决于数据,而不是 2000 年与 2005 年的问题。很可能查询正在处理的行在两个数据库中都不同。

开始从失败的查询中注释掉项目,并每次运行它,直到它工作。您评论的最后一件事是问题发生的地方。然后查看与该部分相关的tata。

【讨论】:

    【解决方案2】:

    这可能取决于存储过程使用的执行计划

    一个例子

    Mytable 表是这样的

         Mytable    
        __________
        |Val|type |
        -----------
        |'1'|'num'|
        |'2'|'num'|
        |'a'|'chr'|
        |'b'|'chr'|
        |'8'|'num'|
    

    我的选择看起来像这样

    从 Mytable 中选择 convert(int,Val) 其中 type = 'num'

    这可能会失败,具体取决于执行计划。实际上,您可以有一个存储过程在一段时间内可以正常工作,但由于表中的行数发生了变化而突然失败,并且 sqlserver 已经创建了一个新的执行计划

    这里还有一个例子: http://www.windows-tech.info/15/a0fc276997660092.php

    【讨论】:

      猜你喜欢
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      相关资源
      最近更新 更多