問題タブ [varcharmax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - varchar(max) 変数の連結 SQL Server 2005
@varchar(max)
いくつかの変数を連結して、いくつかの異なるクエリに基づいて電子メールを作成するときに、大きな頭痛の種に遭遇しました。
効率のために、varchars
1 つのvarchar
.
これは、varchars
8000文字を超えるまで機能しました。次に、それらすべてを 1 つに連結すると(これを のパラメーターにvarchar
押し込むことができます)、"" が返され、LEN() でさえ実際の長さはわかりません。@body
msdb.dbo.sp_send_dbmail
とにかく、ほぼ同じクエリを数回実行し、1 つのvarchar(max)
.
TL;DR
私は解決策に満足していません。varchar(max)
これらの変数を互いに追加するにはどうすればよいでしょうか?
sql - SQL Server Text データ型または Varchar(max) が作成するデータベースが大きすぎる
列でSQL ServerText
またはデータ型を使用すると、大きすぎるデータベースが作成されます。Varchar(max)
varchar(max)
それは正常ですか?
手伝ってくれてありがとう
テキスト フィールドを編集するのは約 5 ~ 50 kb MAX
database - SQL Server フィールドが切り捨てられる
OK、SQL Server 2008 を使用していて、type のテーブル フィールドがありますVARCHAR(MAX)
。問題は、 を使用して情報を保存するときに、フィールドHibernate
の内容がVARCHAR(MAX)
切り捨てられることです。アプリ サーバーにもデータベース サーバーにもエラー メッセージは表示されません。
このフィールドの内容は単なるプレーン テキスト ファイルです。このテキスト ファイルのサイズは 383KB です。
これは、この問題をトラブルシューティングするためにこれまでに行ったことです。
データベース フィールド
VARCHAR(MAX)
を TEXT に変更すると、同じ問題が発生します。SQL Server プロファイラーを使用したところ、データベース サーバーがフル テキスト コンテンツを受信していることに気付き
ましたが、切り捨ての問題がある SQL を表示しようとすると、何らかの理由でプロファイラーがフリーズします。私が言ったように、フリーズする直前に
、フル テキスト ファイルのコンテンツ (383KB) が受信されていることに気付いたので、データベースの問題である可能性があります。
以前にこの問題に遭遇した人はいますか? この切り捨ての原因は何ですか?
注: SQL Studio に移動し、TEXT フィールドの内容をコピーして Textpad に貼り付けるだけです。それが切り捨てられていることに気づいた方法です。
前もって感謝します。
sql-server-2008 - 距離行列をVarChar(Max)としてSQL Serverデータベースに保存する
フリート スケジューリング アプリケーションを開発しており、地理的な場所間の距離を保存する効果的な方法を探しています。
アプリケーション コードは、2 次元配列として行列にアクセスしますdouble[,]
。
マトリックスを永続化するために、現在、マトリックスを文字列としてシリアル化しています。シリアル化すると、次のようになります。
次にvarchar(max)
、SQL Server 2008 データベースの type の列に格納されます。ただ、この紐が大きくなりすぎないかなぁ。
各エントリに 1 桁の数字があり、空白と "\n" を無視すると仮定すると、理論的には、約 46000 の場所 (2 147 483 647 の平方根 - のサイズvarchar(max)
) の距離を 1 つのエントリに格納できます。私の文脈ではこれで十分でしょう。
このアプローチには重大な欠点がありますか? 各行に 2 つの場所の間の距離が 1 つ含まれる別のテーブルに距離を格納する方がよいでしょうか?
私たちのアプリケーションの 100 人のユーザーがそれぞれ 1000 の場所を保存した場合、そのようなテーブルには 100000000 = 100 * 1000 * 1000 行が含まれます....
c# - VARCHAR(MAX) および > 8000 バイト / ExecuteNonQuery
経由で > 8000 文字 (Web ページから送信) を挿入しようとしていますExecuteNonQuery
。ストアド プロシージャは、パラメータを として定義しますVARCHAR(MAX)
。コラムはVARCHAR(MAX)
. 理論的には、2GB のデータを渡すことができるはずです。
ただし、SSSMS での簡単なテストでは、次のことを行います。
したがって、SSMS クエリ自体の制限である可能性がありますが、コードからデータを渡すと、まだ切り捨てられます。基本的/明白な何かが欠けていると確信していますが、それを理解できません。
8000 を超えるデータを渡すにはどうすればよいですか?
注: SSMS に関する回答は必要ありません。これは単なるテストでした。タイトルの問題を C# と で解決しようとしていExecuteNonQuery
ます。
私の質問はここで答えられました: How can I insert more than 8000 characters in a VARCHAR(MAX) column with ExecuteNonQuery?
キャッシングの問題でした。
c# - ExecuteNonQuery を使用して VARCHAR(MAX) 列に 8000 文字を超える文字を挿入するにはどうすればよいですか?
ExecuteNonQuery
(およびDatabaseFactory.CreateDatabase()
MS Practices Enterprise Libraryから)8000文字以上(Webページから送信)を挿入しようとしています。ストアド プロシージャは、パラメータを として定義しますVARCHAR(MAX)
。コラムはVARCHAR(MAX)
. 理論的には、2GB のデータを渡すことができるはずです。
8000 を超えるデータを渡すにはどうすればよいですか? ブレークポイントを設定しましたstring.Length
が、実際には 8K を超えています。
ストアド プロシージャ:
表 (すべてが であることを示すためvarchar(max)
):
.
アップデート:
コードを変更したところ、これは機能しているように見えますが、違いはわかりません。
c# - C# とストアド プロシージャを使用して SQL Server から VarChar(MAX) を取得する
SQL Server から列WebMethod
を取得するために呼び出される があります。varchar(max)
Management Studio で正常に動作する必要なストアド プロシージャを作成しますが、以下のコードを実行するとエラーが発生します。
データが存在しない場合の無効な読み取り試行
コード: