2016-05-19 4 views
1

は、私は次の列でSQL Server 2008でテーブルを持っている: SQL Server - 列にフルストリングが表示されないのはなぜですか?

Column Name|Data Type |Allow Nulls 
FullName |nvarchar(250)|Yes 

私はもはやそれが10個の文字の後に何を遮断した後、10個の文字を新しいフルネームを挿入しようと

。例えば

:データベース内

INSERT INTO ..(FullName) 
VALUES ('Apple EnPearSSSS') 

結果:

FullName | 
Apple EnPe | 

期待される結果:

FullName   | 
Apple EnPearSSSS | 

なぜ10個の文字列の制限はありますか?選択したフィールドのエイリアスを追加した後

実際の結果:

FULLNAME     .| 
1|Apple EnPe     | 
2|Test vriri     | 
3|new lfll     | 
4|abcdefghij     | 

ソリューション:ここでの問題は、フルネームを挿入することです がnvarchar10に限定@FullNameとストアドプロシージャがあります。したがって、ストアドプロシージャで実行された挿入は、テーブルではなくストアドプロシージャに設定されたデータ型の制限のために切り詰められていました。ストアドプロシージャを使用せずに何かを挿入すると、意図したとおりに動作します。

+1

Management Studioを使用していますか?完全な文字列に収まるように列のサイズを変更するだけで済みます。 –

+0

はい、私は、あなたが列のサイズを変更することによって何を意味するか教えていただけますか? –

+0

グリッド内の列をドラッグすると、各セルの詳細を表示できます。たとえば、Excelで列を展開するのと同じです。 –

答えて

0

は別名が列幅を拡大していき、選択したフィールド

SELECT FullName as [FullName    .] FROM YourTable 

の別名にしてください。

+0

残念ながら、動作しません、まだ列に制限を取得します。上記のリンクから回避策はありません。最新のSSMSに更新するだけです。それがうまくいくと思うことが他にありますか? –

+0

スクリーンキャプチャを行い、上記のクエリでsmss 2008が表示していることを表示できますか? – ydoow

+0

実際の結果:列が停止する場所です。 –

0

カラムのデータ型をVARCHARに変更してください。

+0

VARCHARデータ型が機能しませんでしたが、挿入をトランケートするストアドプロシージャがリリースされませんでした。 –

+0

Unicode文字を使用しない場合は、データ型をVARCHARに変更することをお勧めします。 NVARCHARはメモリ内の1文字につき2バイトを占有し、VARCHARは1文字につき1バイトしか占めません。 – jelliaes

関連する問題