2011-12-26 6 views
1

1つのテーブルで列のデータ型を変更する必要がありますが、このテーブルにはデータが含まれていますが、私の目的はテーブルを空にすることができないためです表を空にすることなく列データ型を変更します。列のデータ型を変更する

どうすればよいですか?

+6

元の列の種類と対象の列の種類を説明してください。 – rajah9

+0

ターゲット・データ・タイプのニーズを満たすようにデータを変更し、表を変更します。 – xQbert

答えて

2

新しいテーブルnew_tableを適切な列に作成することをお勧めします。

作成したら、既存テーブルtableの値をこのテーブルに挿入します。その後、制約を再導入するだけです(挿入する前にこれを行うと、挿入パフォーマンスに不利になります)。

完了したら、tableからold_tablenew_tableからtableに名前を変更します。

もちろん、アプリケーションをオフラインにする必要があります。

0

はあなたが

ALTER TABLE table_name 
MODIFY column_name column_type; 

にテキストのデータ型をALTER TABLEを試してみましたが、ntext型およびimageカラムは、次の方法でのみ変更することができます:

  • varchar(max)からtextnvarchar(max)、またはxml
  • ntext~varchar(max),nvarchar(max)またはxml
  • imagevarbinary(max)

に他の変換のためには、キャストを行う必要があります。キャスト用http://technet.microsoft.com/en-us/library/ms187928.aspxを参照

+2

'ALTER TABLE ... MODIFY ...'は有効なSQL Server構文ではありません。 –

+0

SQL Serverで有効なのは、 'ALTER TABLE(table_name)ALTER COLUMN(column_name).....'でなければなりません –

関連する問題