2

重複の可能性:
VARCHAR(MAX) および > 8000 バイト / ExecuteNonQuery (再投稿)

経由で > 8000 文字 (Web ページから送信) を挿入しようとしています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);
   }

私の質問はここで答えられました: How can I insert more than 8000 characters in a VARCHAR(MAX) column with ExecuteNonQuery?

キャッシングの問題でした。

4

0 に答える 0