Heim  >  Artikel  >  Datenbank  >  Welche SQL-Anweisungen gibt es zum Löschen von Feldern in einer Tabelle?

Welche SQL-Anweisungen gibt es zum Löschen von Feldern in einer Tabelle?

coldplay.xixi
coldplay.xixiOriginal
2020-07-03 16:20:4815350Durchsuche

Die SQL-Anweisungen zum Löschen von Feldern in der Tabelle sind: 1. Spalten ohne Standardwerte löschen [alter table Test drop COLUMN BazaarType] 2. Spalten mit Standardwerten löschen, [alter table Test DROP COLUMN BazaarType]. ].

Welche SQL-Anweisungen gibt es zum Löschen von Feldern in einer Tabelle?

SQL-Anweisung zum Löschen von Feldern in der Tabelle

1. Spalten ohne Standardwerte löschen:

alter table Test drop COLUMN BazaarType

2. Spalten mit Standardwerten löschen:

Zuerst Einschränkungen (Standardwerte) löschen

alter table Test DROP CONSTRAINT DF__Test__BazaarType__3C4ACB5F

(alter table Test DROP COLUMN BazaarType Die Fehlermeldung ist DF__SheetTest__Attac__0F8D3381)

Dann Nach dem Löschen der Spalte

alter table Test drop COLUMN BazaarType

3. Ändern Sie den Feldnamen

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


Ändern Sie den Primärschlüsselfeldtyp

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

Beim Ändern des Feldtyps einer Tabelle wird ein Fehler gemeldet, da Einschränkungen bestehen.

a. Wenn Sie das Feld in der Tabelle auf NOT NULL (nicht leer) setzen und dem Feld einen Standardwert (Standardwert) hinzufügen, werden dem Feld Einschränkungen hinzugefügt, und diese Einschränkungen werden hinzugefügt Anschließend treten ähnliche Fehler auf, wenn Sie SQL-Skripte verwenden, um Feldtypen zu ändern und Felder zu löschen.

b. Führen Sie die Änderung aus /delete-Skript erneut ausführen.

Lösung:

1. Suchen Sie den Einschränkungsnamen des Feldes in der Tabelle (oder basierend auf der vorhandenen Eingabeaufforderung und dem Objekt „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. Löschen Sie die vorhandenen Einschränkungen

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

Zum Beispiel:

exec('alter table T_tableName drop constraint  报错信息的约束名' )

3. Führen Sie dann das Skript aus, um den Feldtyp

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

Verwandte Lernempfehlungen:

SQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWelche SQL-Anweisungen gibt es zum Löschen von Feldern in einer Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn