私の列の1つがnvarchar(max)に設定されています。その列を照会すると、256文字しか返されません。データの長さを確認しましたが、7000文字を超えています。
キャラクターを失うのではなく、どうすればすべてのキャラクターを手に入れることができますか?
# select ValidationKey from UserProductAccountProvider
私の列の1つがnvarchar(max)に設定されています。その列を照会すると、256文字しか返されません。データの長さを確認しましたが、7000文字を超えています。
キャラクターを失うのではなく、どうすればすべてのキャラクターを手に入れることができますか?
# select ValidationKey from UserProductAccountProvider
SSMSで、[ツール]メニュー、[オプション]、[クエリ結果]、[SQL Server]、[結果からテキスト]の順に選択します。「各列に表示される最大文字数」の値を256から任意の数(最大8192)に変更します。[OK]をクリックすると、設定が保存されます。新しいクエリウィンドウを開始するまで、設定は実際には有効になりません。
marc_sが言ったように、コードから全文列を取得します。
Davidが指摘したUI設定の横には、返されるデータの量に影響を与える2つの設定があります。
2:[ツール]メニュー、[オプション]、[クエリ結果]、[SQL Server]、[グリッドへの結果]の順に選択します。値「非XMLデータ」を変更します。この値は、使用可能なグリッド内の文字数を示します。あなたはコピーでそれらを得ることができます。デフォルトの制限はクリップボードの制限よりも大きいようです(最大で43kBの文字を取得します)。
3:スタジオには返されるデータの量を制限する設定があります。セッションごとです。[ツール]メニュー、[オプション]、[クエリ実行]の順に表示されます。'SETTEXTSIZE'の値を変更します。SQLバッチの値を検証および変更できます。
SELECT @@textsize;
たとえば、次のように100kBに設定できます。
SET textsize 102400;
通常、UI設定は約256と低くなっていますが、より多くのデータを利用できます。
これらの3つの設定はすべて、表示される(または取得される)ものに影響を与えます。
非常に大きな結果セットを本当に調べたい場合は、メッセージウィンドウに結果を出力できます。
DECLARE @s AS NVARCHAR(max);
DECLARE @LineLength AS int = 4000;
-- you might need a cursor when you have many rows;
SELECT TOP 1 @s = large_text FROM ....
WHILE LEN(@s) > @LineLength BEGIN
print SUBSTRING(@s,1, @LineLength);
SET @s = SUBSTRING(@s,@LineLength, LEN(@s));
END