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

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

coldplay.xixi
coldplay.xixiオリジナル
2020-07-03 16:20:4815379ブラウズ

テーブル内のフィールドを削除する SQL ステートメントは次のとおりです: 1. デフォルト値なしで列を削除 [alter table Test drop COLUMN BazaarType]; 2. デフォルト値のある列を削除 [alter table Test DROP COLUMN BazaarType] ]。

テーブル内のフィールドを削除する 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

(空ではない) に設定し、フィールドに Default value (デフォルト値) を追加すると、フィールドに制約が追加されます。これらの制約を追加した後、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_tableName drop constraint  报错信息的约束名' )

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 までご連絡ください。