2

可能重复:
VARCHAR(MAX) 和 > 8000 字节/ExecuteNonQuery(重新发布)

我正在尝试通过插入 > 8000 个字符(从网页提交)ExecuteNonQuery。存储过程将参数定义为VARCHAR(MAX). 列是VARCHAR(MAX)。理论上,2GB的数据应该是可以通过的。

但是,在一个简单的测试中,在 SSSMS 中,我执行以下操作:

declare @x varchar(max)
set @x = replicate ('a', 10000)
select @x, len(@x)

-- Output shows 8000, not 10000

所以,也许这是 SSMS 查询本身的一个限制,但是当我从代码中传递数据时,它仍然会被截断。我确信我错过了一些基本/明显的东西,但我无法弄清楚。

我该怎么做才能传递数据> 8000?

注意:我不需要关于 SSMS 的答案。这只是一个测试。我正在尝试使用 C# 和ExecuteNonQuery.

   public static void UpdateTerms(string terms)
   {
        Database db = DatabaseFactory.CreateDatabase();
        db.ExecuteNonQuery("uspUpdateTerms", terms);
   }

我的问题在这里得到了解答: 如何使用 ExecuteNonQuery 在 VARCHAR(MAX) 列中插入超过 8000 个字符?

这是一个缓存问题。

4

0 回答 0