この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 11633|答える: 0

[出典] SQL ServerにおけるText型とvarchar(max)型のデータ型には違いがあります

[リンクをコピー]
掲載地 2018/06/13 11:07:11 | | |
まず、varchar(max)はMicrosoftが使用するテキストデータ型の代替です。テキストなどの古いフィールドタイプは、後のバージョンでキャンセルされることがあります。 では、保存可能なテキストはvarchar(max)で確実に保存可能です。 実際、格納できる文字数は非常に多いです。 保存可能な4億2千万文字はアクセスが難しく、私はそれが難しいと考えています。

以前だけ知っていたテキストと画像はSQL Serverによって時代遅れになる可能性のあるデータ型ですしかし、具体的な理由ははっきりしません。今日読んだとき、テキストとvarchar(max)およびnvarchar(max)の違いがわかりました。主に演算子の制限のために、テキストは以下の関数でのみ使用可能です。
機能命題
データ長本文を読む
PATINDEX(PATINDEX)テキストサイズをセット
サブストリング更新テキスト
テキストPTRですWRITETEXT(テキストを書く)
TEXTVALID


例えば、「Text」列のデータ型がテキストの場合、「=」や「left()」といった操作には使えません。例えば、以下の例です。

テーブルを作成し、データを入力します:

もし存在する場合(id = OBJECT_ID('[asdf]') および OBJECTPROPERTY(id, 'IsUserTable') = 1 のsysObjectsから*を選択)

ドロップテーブル [ASDF]

テーブルを作成 [asdf] (

[興味深] [int] 単位元(1, 1)はnullでない、

[本文] [本文] NULL ,

[varcharmax] varchar(max) NULL)

ALTER TABLE [ASDF] NOCHECK ADD CONSTRAINT [PK_asdf] プライマリキー 非クラスタリング([inttest])



IDENTITY_INSERT [asdf] オン



挿入 [asdf] ( [ [inttest] , [text] , [varcharmax] ) 値 ( 1 , '1111111', '1111111')



IDENTITY_INSERT [asdf] 停止

クエリを実行してください:

問い合わせ1:
セレクト[本文]

      、[ヴァルシャルマックス]

[testDB]より。 [dbo]。 [ASDF]

どこ

[本文] ='11111' および

[ヴァルシャルマックス] = 『1111111』


以下のエラーメッセージが表示されます:

Msg 402、レベル16、州1、ライン1

データ型テキストとヴァルチャーは、等しい演算子では互換性がありません。

問い合わせ2:
セレクト[本文]

      、[ヴァルシャルマックス]

[testDB]より。 [dbo]。 [ASDF]

どこ

[ヴァルシャルマックス] = 『1111111』


正常に動作可能です



MS SQL2005以上では、大きな値のデータ型(varchar(max)、nvarchar(max)、varbinary(max))を追加します。 大きなデータ型は最大2^30〜1バイトのデータを保存できます。

これらのデータ型は、より小さなデータ型であるvarchar、nvarchar、varbinaryと動作的に同一です。

Microsoftの主張は、以前のテキスト、ntext、画像のデータ型をこのデータ型に置き換えることであり、それらの対応関係は以下の通りです。

varchar(max)-------text;

nvarchar(max)-----ntext;

varbinary(max)----image。



大きな価値のデータ型では、以前よりも大きな価値のデータに対してはるかに柔軟に作業できます。 例えば、テキストは以前に「like」で使えませんが、varchar(max)以降はこれらの問題はありません。なぜならvarchar(max)は動作がvarchar(n)と同じであるため、varcahrで使えることはvarchar(max)でも使えるからです。

さらに、挿入済みおよび削除済みテーブルの大きな値型の列参照に対してAFTERトリガーの使用もサポートします。 テキストは良くありません。要するに、大きな数値のデータ型を使うと「腰が痛くなくなり、脚も痛くなく、一息で6階まで上がれる」と言われます。 何を待っているのですか?大きな価値タイプを使いましょう。






先の:うん、うん、うんうん
次に:EF(ラムダ式)はデータ内で遭遇した複数の例外をクエリします
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com