不允许从数据类型ntext到varchar的隐式转换。使用CONVERT函数来运行这个查询

不允许从数据类型ntext到varchar的隐式转换。使用CONVERT函数来运行这个查询

问题描述:

我在我的一个SQL Server 2000存储过程中出现上述错误。这里我不使用类型为ntext的任何变量。我不知道为什么我得到这个错误。有人可以帮忙吗?不允许从数据类型ntext到varchar的隐式转换。使用CONVERT函数来运行这个查询

+0

你可以发布产生错误的代码吗? – Taryn 2012-07-05 19:46:33

+0

您可能没有使用数据类型为“NTEXT”的变量,但您肯定试图从NTEXT到“VARCHAR”的列执行隐式转换,错误非常明显。如果您需要更多帮助,请发布您的sp以及它使用的表格的结构 – Lamak 2012-07-05 19:52:41

+0

@bluefeet附加信息。我有一个SP的varchar(8000)参数。只有当输入超过8000个字符时才会出现此错误。有关在这种情况下使用什么数据类型的任何建议? – Muthukumar 2012-07-05 19:56:48

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