2011-09-12 11 views
5

可能性の重複:彼らの両方が同じサイズの容量を持っているように、この記事から
SQL Server Text type vs. varchar data type
Using varchar(MAX) vs TEXT on SQL ServerSQL 2008 - テキスト・データ・タイプVSのvarchar(MAX)

、それが見えます: http://msdn.microsoft.com/en-us/library/ms143432.aspx

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

私はちょうど私がTEXTを使用する必要があります代わりに?

ありがとう、オラクル(CLOBからいくつかのデータを移行したとvarchar(MAX)にそれを作ったが、それはとにかく値の一部を切り捨てように見えます!

+1

TEXTが不調になっています - http://andrewm-developmentnotes.blogspot.com/2011/03/text-type-deprecated-in-sql-server-2008.html – StuartLC

+1

このスレッドには回答があります: http://stackoverflow.com/questions/564755/sql-server-text-type-vs-varchar-data-type – Icarus

+0

http://stackoverflow.com/questions/834788/using-varcharmax-vs-text-on- sql-server – NullUserException

答えて

11

いいえ、あなたは1、it has been deprecated since SQL Server 2005についてTEXTを使用しないでください、ともあなたは多くの文字列操作がそれに対して動作しないことがわかります全くTEXTNTEXTまたはIMAGEを使用しないでください - 。。。代わりにVARCHAR(MAX)NVARCHAR(MAX)またはVARBINARY(MAX)を使用

+0

Damn Microsoft。なぜ彼らは規則に固執してMySQLやPostgresのようなテキストを使うことができないのですか? –

+1

@Henley彼らは既にテキストを使用していたので、それは吸った。 MySQLが標準を守り、この愚かな制限の代わりにオフセット/フェッチを使用できないのはなぜですか?泥は両方の方法で飛ぶ... –

+0

風が多い場合 – shiggity

8

レガシタイプ(TEXT、NTEXT、IMAGE)は推奨されなくなり、サポートは将来のバージョンのSQL Serverで削除されます。

使用方法には大きな違いがあります。新しいMAXタイプは、.WRITE構文で効率的な更新をサポートします。レガシータイプには、これを達成するための秘訣のセットがあります(TEXTPTRUPDATETEXTsp_invalidate_testptr)。

REPLACEまたはSUBSTRINGのような新しいMAXタイプは、VARCHAR(N)を受け入れる関数でもVARCHAR(MAX)を受け入れます。

レガシタイプは、MAXタイプがサポートする暗黙の変換をサポートしていません。Data Type Conversionsを参照してください。

特定のエンジン機能はMAXタイプで動作しますが、従来のエンジンタイプでは動作しません。オンライン操作(SQL 11 they support tables with BLOBs

1

リンクされた記事はスペース割り当てのみを扱います。最低でも、text, ntext and image data types will be removed from future releases of SQL Serverを知っているので、新しいテーブルでは、varchar(max)、nvarchar(max)、またはvarbinary(max)を使用します。

どのようにがこれらの値と相互作用するでしょうか。むしろ、データ型のために標準列= '本当に長い値'またはUPDATETEXTなどのあまり一般的でない操作を使用して列を操作しますか?

関連する問題