データ型が多少「関連」している限り、あなたは絶対にこれを行うことができます。
をBIGINT
に変更することができます。第2のタイプの値の範囲が大きいため、データを失う危険はありません。
VARCHAR(50)
をVARCHAR(200)
に変更することができます。タイプは互換性があり、サイズが大きくなり、何かを切り捨てる危険はありません。
基本的に、あなただけの
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumn VARCHAR(200) NULL
または何を必要としています。 200文字以上の文字列がない限り、大丈夫です。より長い文字列を使用していた場合には何が起こるかわかりません。エラーが発生して変換が失敗するか、先に進んで一部のデータが切り捨てられている可能性があります。あなたはその列の値を持っている場合、明らかに - だから私は、あなたが最初にあなたがINT
またはそのような何かにVARCHAR
を変更する必要がある場合、それは少しトリッキー取得
:-)あなたのデータのコピーでこれを試してみてください示唆します新しいタイプに「適合」しないと、変換は失敗します。しかし、別の "一時的な"新しい列を使用してもこれを修正することはできません。何らかの形でそれらの "互換性のない"ケースに対処する必要があります(無視してNULLを残し、デフォルト値に設定します)。
また、VARCHAR
とNVARCHAR
の間の切り替えは、たとえば次のような場合には難しくなります。他の形式では表現できないか、またはあるタイプから別のタイプへの「デフォルト」変換が期待通りに機能しないため、変換時に特定のエントリが失われる可能性があります。
'CHAR'から' VARCHAR 'に対応し、パディングをトリミングします。 –
VARCHARからTEXTへの変更に問題がありますか? – Murilo
@Murilo: 'TEXT'はすでに廃止されていますので、すぐに削除されますので、**データ型' TEXT'に列*を変更するのではなく** VARCHAR(MAX)あなたは本当に8000文字以上のデータを必要とします –