VARCHAR(MAX)和> 8000字节/ ExecuteNonQuery

时间:2013-01-15 22:36:22

标签: c# sql sql-server-2008-r2 executenonquery varcharmax

  

可能重复:
  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?

这是一个缓存问题。

0 个答案:

没有答案