8

重複の可能性:
SQL Server Text 型と varchar データ型 SQL Serverでの
varchar(MAX) と TEXT の使用

この記事から、どちらも同じサイズの容量を持っているように見えます: http://msdn.microsoft.com/en-us/library/ms143432.aspx

それは本当に正しいですか?本当の違いは何ですか?

私はオラクルからいくつかのデータを移行しました(clobしてvarchar(max)にしましたが、とにかく値の一部を切り捨てたようです。代わりにTEXTを使用する必要がありますか?

ありがとうございました!

4

3 に答える 3

13

いいえ、使用しないでくださいTEXT。1 つは、SQL Server 2005 から廃止されたことです。また、多くの文字列操作がそれに対して機能しないことがわかります。またはを使用しないでください。代わりTEXTにまたはを使用してください。NTEXTIMAGEVARCHAR(MAX)NVARCHAR(MAX)VARBINARY(MAX)

于 2011-09-12T15:23:49.337 に答える
9

従来の型 (TEXT、NTEXT、IMAGE) は非推奨であり、これらのサポートは SQL Server の将来のバージョンでは廃止される予定です。

使い方には大きな違いがあります。新しい MAX タイプは、.WRITE構文による効率的な更新をサポートします。レガシータイプには、同じことを達成するための難解な関数のセットがあります ( TEXTPTRUPDATETEXTsp_invalidate_testptr)。

新しい MAX 型はREPLACESUBSTRINGなどの関数で使用できます。 を受け入れる関数VARCHAR(N)は も受け入れますVARCHAR(MAX)

従来の型は、MAX 型がサポートする暗黙的な変換をサポートしていません。データ型の変換を参照してください。

特定のエンジン機能は MAX タイプで動作しますが、従来のタイプでは動作しません。オンライン操作 ( SQL 11 では、BLOB を含むテーブルをサポートしています)

于 2011-09-12T15:24:40.347 に答える
2

リンクされた記事では、スペースの割り当てのみを扱います。少なくとも、text、ntext、および image データ型は SQL Server の将来のリリースから削除されることを知っておいてください。そのため、新しいテーブルには、varchar(max)、nvarchar(max)、または varbinary(max) を使用してください。

同様に重要なのは、それらの値とどのように相互作用するかです。データ型が原因で、標準の column = 'really long value' またはUPDATETEXTおよびその他のあまり一般的でない操作を使用して列を操作しますか?

于 2011-09-12T15:26:08.167 に答える