2017-02-07 5 views
0

私は列を大きくする必要があるSQL Serverに問題がありました。私は持っていると思っていましたが、データのサイズカラム。文字列またはバイナリデータは切り捨てられます。 - 列の長さが増えたにもかかわらず、

[columnName]は当初VARCHAR(50)だったと私はVARCHAR(100)にサイズを変更するには、以下のコマンドを使用:

ALTER TABLE dbo.tableName 
    ALTER COLUMN columnName VARCHAR(100) NOT NULL; 

私はサイズが今であることがわかりますテーブルのデザインビューで。これにもかかわらず

、私はまだエラー

文字列またはバイナリデータが切り捨てられます取得します。

最初のスペースが50バイトを超える場合、

私には何が欠けていますか?

ありがとうございます。

+3

おそらくデータが100文字を超えていますか? –

+4

それからまだどこかに 'VARCHAR(50)'があります。ストアドプロシージャのパラメータ?トリガーのあるビュー?パラメータ化されたコマンド? (また、あなたが作業していると思うサーバー/テーブルで作業していないという愚かな間違いを確認してください) –

+1

'insert into ... select'コマンドを実行している場合は、問題が何であるかを簡単に確認できます代わりに 'select ... into#tmp'を実行して、生成された表の列のタイプを調べます。 –

答えて

1

のは、あなたのinsert文のようなものであるとしましょう:

select max(len(columnName)) as minVarcharLengthRequired 
from dbo.anotherTableName 

そして使用:あなたはその列に挿入しようとしている最大値を見つけるために、このSQLを使用し、その後

insert into dbo.tableName (
    ..., 
    columnName, 
    ... 
    ) 
select ..., 
    columnName, 
    ... 
from dbo.anotherTableName 

alter table文のそれよりも大きなもの。

関連する問題