ホームページ  >  記事  >  データベース  >  テーブルのフィールドを削除する SQL ステートメントは何ですか?

テーブルのフィールドを削除する SQL ステートメントは何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-06-22 15:35:196355ブラウズ

推奨チュートリアル: 「mysql ビデオ チュートリアル

テーブル フィールドを削除する SQL ステートメントとは何ですか?

テーブル フィールドを削除する SQL ステートメントは次のとおりです:

1. デフォルト値を使用しない列の削除:

alter table Test drop COLUMN BazaarType

2. デフォルト値を使用して列を削除します値 値の列:

最初に制約を削除します (デフォルト値) alter table Test DROP CONSTRAINT DF__Test__BazaarType__3C4ACB5F

(alter table Test DROP COLUMN BazaarType エラーが表示されます。つまり、DF__SheetTest__Attac__0F8D3381)

次に列を削除します alter table Test DROP COLUMN BazaarType

3.

ALTER TABLE 表名 ADD 字段名 INT  DEFAULT (0) NOT NULL;

主キー フィールド タイプの変更

alter table [tablename] alter column [colname] [newDataType])

テーブルのフィールド タイプを変更すると、制約があるためエラーが報告されます。

a.テーブル内のフィールドを NOT NULL に設定したり、フィールドにデフォルト値を追加したりする操作では、フィールドに制約が追加されます。これらの制約を追加した後、SQL スクリプトを使用してフィールド タイプを変更し、フィールドを削除します。同様のエラーが発生します。

b. フィールド上の既存の制約を見つけて、既存の制約を削除します。

c. 変更/削除スクリプトを再度実行します。

解決策:

1. テーブル内のフィールドの制約名を見つけます (または、既存のプロンプトとオブジェクト 'DF__******' に基づいて) )

declare @name varchar(50)
select  @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault 
where a.id = object_id('TableName') 
and a.name ='ColumName'

2. 既存の制約を削除します

exec('alter table TableName drop constraint ' + @name)

例: exec('alter table T_tableNamedropconstraint エラー メッセージの制約名' )

3. 次に、スクリプトを実行してフィールド タイプを変更します

alter table dbo.T_tableName alter column Id BIGINT not NULL
alter table dbo.T_tableName add constraint PK_Id primary key(Id)

推奨関連記事: "SQL データベース テクノロジに関する記事"

以上がテーブルのフィールドを削除する SQL ステートメントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。