【问题标题】:Implicit conversion from data type ntext to varchar is not allowed. Use the CONVERT function to run this query不允许从数据类型 ntext 到 varchar 的隐式转换。使用 CONVERT 函数运行此查询
【发布时间】:2012-07-06 06:40:03
【问题描述】:

我在我的一个 SQL Server 2000 存储过程中遇到上述错误。这里我不使用任何类型为ntext 的变量。我不知道为什么会收到此错误。有人可以帮忙吗?

【问题讨论】:

  • 你能贴出产生错误的代码吗?
  • 您可能没有使用数据类型为NTEXT 的变量,但您肯定会尝试从NTEXT 的列隐式转换为VARCHAR,错误很明显.如果您需要更多帮助,请发布您的 sp 及其使用的表的结构
  • @bluefeet 附加信息。我有一个 SP 的 varchar(8000) 参数。仅当输入超过 8000 个字符时,我才会收到此错误。在这种情况下,关于使用什么数据类型有什么建议吗?

标签: sql-server stored-procedures sql-server-2000


【解决方案1】:

看来问题根本不在于存储过程。正如您在评论中所说,当输入超过 8000 个字符时会发生错误。 SQL Server 2000 没有VARCHAR(MAX)VARCHAR 的最大长度为 8000。因此,如果您尝试将更长的字符串传递给您的 sp,它需要转换为TEXT,但它可以' t 是一个隐式转换,所以你需要一个TEXT 类型的参数。当然,您需要更改您的 sp,并且无法对这种数据类型的列执行许多操作,因此您可能无法实际执行您想要的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多