3261 Stimmen

Hinzufügen einer Spalte mit einem Standardwert zu einer vorhandenen Tabelle in SQL Server

Wie kann ich eine Spalte mit einem Standardwert zu einer bestehenden Tabelle in SQL-Server 2000 / SQL Server 2005 ?

12 Stimmen

Warum gibt es auf diese Frage 41 Antworten? Wenn ich sie durchsehe, sagen die meisten das Gleiche. Warum werden diese nicht entfernt? Diese Frage braucht nur maximal 3 Antworten.

0 Stimmen

ALTER TABLE SomeTable ADD SomeCol Bit NULL --O NOT NULL. CONSTRAINT D_SomeTable_SomeCol --Wenn ausgelassen, wird ein Default-Constraint Name automatisch generiert. DEFAULT (0)--Optionale Standard-Beschränkung. WITH VALUES --Hinzufügen, wenn die Spalte nullbar ist und Sie den Standardwert für existierende Datensätze haben wollen.

1 Stimmen

@MichaelZ. - 43 Antworten jetzt .....

63voto

giá vàng Punkte 601

Verwendung:

ALTER TABLE {TABLENAME} 
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} 
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}

Referenz: ALTER TABLE (Transact-SQL) (MSDN)

59voto

gngolakia Punkte 2126

Mit T-SQL können Sie das auf folgende Weise tun.

 ALTER TABLE {TABLENAME}
 ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
 CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}

Sie können auch Folgendes verwenden SQL Server-Verwaltungsstudio auch durch einen Rechtsklick auf Tabelle im Menü Design, wobei der Standardwert auf Tabelle gesetzt wird.

Und außerdem, wenn Sie die gleiche Spalte (wenn sie nicht vorhanden ist) zu allen Tabellen in der Datenbank hinzufügen wollen, dann verwenden Sie:

 USE AdventureWorks;
 EXEC sp_msforeachtable
'PRINT ''ALTER TABLE ? ADD Date_Created DATETIME DEFAULT GETDATE();''' ;

58voto

Jack Punkte 567

In SQL Server 2008-R2 gehe ich in den Entwurfsmodus - in einer Testdatenbank - und füge meine beiden Spalten mit dem Designer hinzu und nehme die Einstellungen mit der GUI vor, und dann erscheint die berüchtigte Right-Click bietet die Option " Änderungsskript generieren "!

Und schon erscheint ein kleines Fenster mit, Sie ahnen es, dem korrekt formatierten, garantiert funktionierenden Änderungsskript. Drücken Sie den einfachen Knopf.

57voto

Tony L. Punkte 15258

Dies kann auch über die SSMS-GUI erfolgen. Ich zeige unten ein Standarddatum, aber der Standardwert kann natürlich beliebig sein.

  1. Bringen Sie Ihre Tabelle in die Entwurfsansicht (Rechtsklick auf die Tabelle im Objekt Explorer->Design)
  2. Fügen Sie der Tabelle eine Spalte hinzu (oder klicken Sie auf die Spalte, die Sie aktualisieren möchten, wenn sie bereits existiert)
  3. Geben Sie in Spalteneigenschaften unten ein (getdate()) o 'abc' o 0 oder ein beliebiger Wert, den Sie in Standardwert oder Bindung Feld wie unten abgebildet:

enter image description here

0 Stimmen

Diese Funktion ist in der Version 18.1 von SSMS fehlerhaft. Ich habe das mit einem nvarchar gemacht, habe 'vision' in den Default Value oder Bindung eingegeben, gespeichert, aber es hat meinen String nicht in neue Entitäten eingefügt. Ich kehrte zum Dialog zurück und fand den Eintrag im Feld, das auf ('vision') geändert wurde

57voto

Christo Punkte 2308

Alternativ können Sie eine Vorgabe hinzufügen, ohne die Einschränkung explizit benennen zu müssen:

ALTER TABLE [schema].[tablename] ADD  DEFAULT ((0)) FOR [columnname]

Wenn Sie bei der Erstellung dieser Einschränkung ein Problem mit bestehenden Standardeinschränkungen haben, können diese entfernt werden:

alter table [schema].[tablename] drop constraint [constraintname]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X