我正在尝试通过插入 > 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 个字符?
这是一个缓存问题。