SQL Serverでは、SET TEXTSIZE
ステートメントは、 varchar(max)のサイズを指定します 、 nvarchar(max) 、 varbinary(max) 、テキスト 、 ntext 、および画像 SELECT
によって返されるデータ ステートメント。
マイクロソフトは、テキスト 、 ntext 、および画像 SQL Serverの将来のバージョンで削除されるため、新しい開発作業でこれらのデータ型を使用することは避け、現在それらを使用しているアプリケーションを変更して varchar(max)を使用するように計画する必要があります。 、 nvarchar(max) 、または varbinary(max) 代わりに。
例1-基本的な使用法
TEXTSIZE
の設定例を次に示します。 値。
SET TEXTSIZE 2048;
TEXTSIZE
を設定します 2048バイトまで。
例2–TEXTSIZE値を確認する
現在のTEXTSIZE
を確認できます @@TEXTSIZE
の値 :
SELECT @@TEXTSIZE AS [Text Size];
結果:
+-------------+ | Text Size | |-------------| | 2048 | +-------------+
例3–クエリ結果への影響
これは、TEXTSIZE
がどのように機能するかを示す例です。 値は、SELECT
で返される結果に影響を与える可能性があります クエリ。
まず、テーブルを作成し、テキストを挿入してから選択します。
USE Test; CREATE TABLE TextSizeTest ( varchar50 varchar(50), varcharMax varchar(max), nvarcharMax nvarchar(max) ); INSERT INTO TextSizeTest VALUES ( 'Dragonfruit', 'Dragonfruit', 'Dragonfruit' ); SELECT * FROM TextSizeTest;
結果(通常):
+-------------+--------------+---------------+ | varchar50 | varcharMax | nvarcharMax | |-------------+--------------+---------------| | Dragonfruit | Dragonfruit | Dragonfruit | +-------------+--------------+---------------+
これは私たちが通常期待することです。テキストの各行が2048バイト(TEXTSIZE
を設定したもの)未満であるため、各列内に全文が返されます。 前の例ではに)。
しかし、TEXTSIZE
を減らすとどうなりますか 値:
SET TEXTSIZE 4; SELECT * FROM TextSizeTest;
結果:
+-------------+--------------+---------------+ | varchar50 | varcharMax | nvarcharMax | |-------------+--------------+---------------| | Dragonfruit | Drag | Dr | +-------------+--------------+---------------+
最初の列は「最大」列ではないため、影響を受けません。つまり、 varchar(50) varchar(max)ではありません 。 TEXTSIZE
オプションは、max
で定義された列にのみ影響します 。
2番目の列は、最初の4文字を返します。これは、TEXTSIZE
を設定したためです。 値を4に設定し、最初の4文字は4バイトを使用しています。
3番目の列は、最初の2文字のみを返します。これは、 nvarcharであるためです。 桁。この場合、最初の2文字は4バイトを使用しています。
例4–値をリセットする
注意すべきことの1つは、SET TEXTSIZE 0
を指定することです。 実際には、デフォルト値の4096に「リセット」されます。
SET TEXTSIZE 0; SELECT @@TEXTSIZE AS [@@TEXTSIZE]; SELECT * FROM TextSizeTest;
結果:
+--------------+ | @@TEXTSIZE | |--------------| | 4096 | +--------------+ (1 row affected) +-------------+--------------+---------------+ | varchar50 | varcharMax | nvarcharMax | |-------------+--------------+---------------| | Dragonfruit | Dragonfruit | Dragonfruit | +-------------+--------------+---------------+ (1 row affected)