1

データベーステーブルにSQLのレコードがある場合、属性のデータ型を変更できますか?

Microsoft ManagementStudio2008を使用しています。発生するエラーは次のとおりです。**データ型nvarcharをfloatに変換中にエラーが発生しました。****

4

4 に答える 4

3

つまりalter column、コマンドを使用できるのは、変更されたデータ型が新しく変更されたデータ型と互換性がある場合のみです。また、トランザクションで行うことをお勧めします。

例:以下のスクリプトを使用して、列をvarchar(50)からnvarchar(200)に変更できます。

alter table TableName 
alter column ColumnName nvarchar(200)

編集:列タイプの変更中に投稿されたエラーについて。

**データ型nvarcharをfloatに変換中にエラーが発生しました。****

1つの方法は、新しい列を作成し、すべての適切な(変換可能で互換性のある)レコードを新しい列に変換することです。その後、変換されない不良レコードをクリーンアップし、古い列を削除して、新しく追加して入力した列の名前を元の名前に戻します。重要:最初に、このすべての操作にテスト環境を使用してください。通常、プロダクションテーブルで遊ぶことは、物事を台無しにするための悪い習慣になります。

同様のSE投稿に関するその他の議論を探すための参照:

于 2013-01-05T18:45:52.467 に答える
1

明らかに、新しいデータ型へのデフォルトの変換はありません。1つの解決策は、要求されたタイプで2番目の列を作成し、独自の変換関数を作成することです。これが完了したら、最初の列を削除し、2番目の列の名前を同じ名前に変更します。

于 2013-01-05T18:53:00.350 に答える
0

考慮事項:テーブルの大きさ。次に、alter table構文を使用します。変更するデータ型がわからないため、たとえば

列を変更:

Alter Table [yourTable] Alter column [yourColumn] varchar(15) 
  • また、新しい列を追加してから、古い列を使用してその列を更新することもできます。古い列を削除します。新しい列の名前を変更します。これは安全でより良い方法です。保持しているデータが新しいデータ型にうまく反応しない場合があるためです...

アイデアを探すための投稿:巨大なテーブルの列タイプを変更するデータを失うことなくSQLデータベースの列データ型を変更する方法

于 2013-01-05T18:53:04.720 に答える
0

その列のデータ型を変更します..しかし、一般的にsqlは変更を許可しません。それはuにその列を削除するように促します..そのことを達成するための設定があります。
[ツール]->[オプション]->[デザイナー]->[テーブルとデータベースのデザイナー]に移動し、[保存の防止]オプションのチェックを外します。abtsqlserver 2008R2を使用しています。これで、データ型を簡単に変更できます。ここに画像の説明を入力してください

于 2017-05-31T06:13:53.880 に答える