質問

い可変長の文字データを格納したい、まさにSQLサーバー(2005年)データベースです。を勉強したいのか良い方法を選択テキストのSQL型を選んでVARCHAR SQLの型には、是非、パフォーマンス/プします。

役に立ちましたか?

解決

使用している場合は、SQL Server2005年以降、利用 varchar(MAX).の text datatypeは推奨されて用いるべきではありませんの新規開発です。から のドキュメント:

重要

ntext , text, は、 image データタイプを撤去することは、将来のバージョンのMicrosoft SQLサーバーです。の利用を避けるこれらのデータタイプを新しい開発プランを変更する用途で現在使用します。使用 nvarchar(max), varchar(max), は、 varbinary(max) です。

他のヒント

TEXT は大文字列データです。の長さの分野exceeedある閾値は、テキストが格納され出ます。

VARCHAR 常に格納される行が限定され 8000 文字です。っている場合を VARCHAR(x), では、 x>8000, なのに、エラー:

サーバー:Msg131、15、3線の1

サイズ()されたタイプ'varchar'上限を超えて許可されるデータタイプ(8000)

これらの長さに制限はな懸念 VARCHAR(MAX)SQL Server2005年, は、格納されることがあり行列のように、 TEXT.

ご注意 MAX のものではない定数ここで、 VARCHARVARCHAR(MAX) 非常に異なる種類のも TEXT.

以前のバージョン SQLサーバー アクセスできないの TEXT 直接、ごみを出することができる方 TEXTPTR 利用で READTEXTWRITETEXT ます。

SQL Server2005年 直接手に取ることができ TEXT カラムもまだ明確なキャスト VARCHAR を割り当てる値です。

TEXT は:

  • が必要な場合は大文字データベース
  • ない場合は検索のカラムの値
  • を選択する場合はこの欄に人は少ないで参加できます。

VARCHAR は:

  • ご使用にならないときは少し文字列
  • お探しの場合は、文字列値
  • 場所を選んで使用することはできるが仲間入り。

による 選択 ここで行なわれるの値を返します。

による 検索 ここで行なわその結果により価値の TEXT または VARCHAR カラムです。これを利用で JOIN または WHERE ます。

としての TEXT 保存の列をクエリーながっている。 TEXT カラムは高速に行います。

例え TEXT が適しているかについて

  • ブログのコメント
  • Wikiページ
  • コードソース

例え VARCHAR が適しているかについて

  • ユーザ名
  • ページタイトル
  • ファイル名

経験則として、た場合、あるいテキスト値を超えるもの 200 文字 使用しないで参加できるこのカラムを使用 TEXT.

その利用 VARCHAR.

P.S. 同じように UNICODE 有効な NTEXTNVARCHAR ものを使用できる例です。

P.S.P. 同じように VARCHAR(MAX)NVARCHAR(MAX) その SQL Server2005+ 利用で TEXTNTEXT.ま能を有効にする必要があり large value types out of row かれていますので、そちらを sp_tableoption したい場合はそれを常に保存されますのです。

上記のと こちらの, TEXT は推奨されていませんが将来のリリース:

text in row オプションを撤去することは、将来のバージョンの SQLサーバー.の使用は避けこのオプションで新しい開発プランを変更する用途で現在使用 text in row.お店では大量のデータを利用 varchar(max), nvarchar(max), や varbinary(max) データの種類です。制御-行されているかのように行動これらのデータ型を使用 large value types out of row オプションです。

導入された

SQL Serverで2005の新しいデータ型:varchar(max)nvarchar(max) 彼らはデータの2ギガバイトにOPを含めることができますが、彼らはまた、varcharnvarcharの利点のほとんどを持っている:彼らは古いテキスト型の利点を持っています。これらの利点の中には、サブストリングとして文字列操作関数を使用する能力である()。

サイズは8Kバイトの下にある間に、

また、VARCHAR(max)は、テーブルの(ディスク/メモリ)空間に格納されます。あなたはフィールドでより多くのデータを配置する場合にのみ、そのテーブルのスペースの外に格納されています。テーブルのスペースに格納されたデータは、(通常は)早く取得されます。

(n)はvarchar型(最大):より良い代替手段があるとして

要するに、テキストを使用することはありません。定期的にvarchar型が十分でないときにのみ、つまり、あなたが期待する場合は、保存しようとしているtehの文字列が8000個の文字を超えます、varchar型(max)を使用します。

指摘されたとおり、

は、あなたがTEXTデータ型でSUBSTRINGを使用することができますが、唯一の限り、テキストフィールドが8000の未満の文字が含まれています。

あの大きな変更ms2008->が検討された場合は下記を決定はどのようなデータ型を利用します。http://msdn.microsoft.com/en-us/library/ms143432.aspx

バイト/

  1. varchar(max)は、varbinary(max)、xml、テキスト、画像列2^31-1 2^31-1
  2. nvarchar(max)カラム2^30-1 2^30-1
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top