2012-03-05 28 views
3

Firebirdデータベースにはいくつかのテーブルがあります。私はSQLでデータベースを開いたときにデータベースがFirebirdデータベースの列からCHARACTER SET UNICODE_FSSを削除してください

alter table Machines add MachineVersion varchar(100) CHARACTER SET UNICODE_FSS 

として作成されたときに追加された複数の列は、私はCHARACTER SET UNICODE_FSSをドロップするように、これらの列を変更したいがありますので、私は、まだコマンドに

alter table Machines alter column MachineVersion type VARCHAR(100) 

を走りましたマネージャーは、これらの列の文字セットはまだUNICODE_FSSです。

CHARACTER SET UNICODE_FSSを削除する2番目のコマンドの別の構文はありますか?

答えて

2
alter table Machines alter column MachineVersion type VARCHAR(100) 

このクエリでは文字セットは変更されません。

あなたはcharaterセットを削除したい場合は、次のようにドメインを変更する必要があります。代わりに私が原因で、データベース内の既存のトリガのことを行うことはできませんRDB $ 141を使用欄ドメイン

+1

それは私のために働いた。ありがとう。 – Dan

+0

これはFirebird 3では動作しなくなることに注意してください。キャラクタセットを削除するには、新しい列を作成してデータをコピーするしかありません(または、それを 'none'に戻す) –

1

新しい列を追加して古い列から新しい列にデータをコピーし、後で古い列を削除することは可能ですか?

+0

update RDB$FIELDS set RDB$CHARACTER_SET_ID = NULL where RDB$FIELD_NAME = 'RDB$141' 

。 – Dan

+0

さて、古い列を削除しないでください;-)トリガー本体で古い項目を新しい項目に変更してください。 – rstrelba

関連する問題