可能重复:
VARCHAR(MAX) and > 8000 bytes / ExecuteNonQuery (repost)
我正在尝试插入>通过ExecuteNonQuery
提取8000个字符(从网页提交)。存储过程将参数定义为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);
}
我的问题在这里得到了回答: How can I insert more than 8000 characters in a VARCHAR(MAX) column with ExecuteNonQuery?
这是一个缓存问题。