473 Stimmen

So legen Sie einen Standardwert für eine vorhandene Spalte fest

Dies funktioniert nicht in SQL Server 2008:

ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES'

Der Fehler ist:

Falsche Syntax in der Nähe des Schlüsselworts 'SET'.

Was mache ich falsch?

1 Stimmen

Was haben Sie in MSDN ALTER TABLE gelesen...? msdn.microsoft.com/de-us/library/ms187742(SQL.90).aspx

2 Stimmen

0 Stimmen

5voto

David Fawzy Punkte 1016

Ich habe gerade 3 einfache Schritte gefunden, um eine bereits vorhandene Spalte zu ändern, die vorher null war

update   orders
set BasicHours=0 where BasicHours is null

alter table orders 
add default(0) for BasicHours

alter table orders 
alter  column CleanBasicHours decimal(7,2) not null

0 Stimmen

Richtig. ADD DEFAULT Die Syntax ermöglicht es Ihnen, einen Standardwert hinzuzufügen, ohne eine explizite Einschränkung festzulegen (dies war in meinem Fall wichtig).

3voto

Sheriff Punkte 628
ALTER TABLE tblUser
 ADD CONSTRAINT DF_User_CreatedON DEFAULT GETDATE() FOR CreatedOn

1 Stimmen

Es handelt sich um dieselbe Syntax, die bereits vor einem Jahrzehnt auf die akzeptierte Antwort -, aber seltsamerweise ohne die vom Autor in der ursprünglichen Frage ausdrücklich festgelegten Bezeichner oder Datentypen zu verwenden, was sie weniger relevant macht.

2voto

Hasna Ashraf Punkte 21

Versuchen Sie folgenden Befehl;

ALTER TABLE Person11
ADD CONSTRAINT col_1_def
DEFAULT 'This is not NULL' FOR Address

1voto

ScottFoster1000 Punkte 567

Wie die Antwort von Yuck mit einer Prüfung, damit das Skript mehr als einmal ohne Fehler ausgeführt werden kann. (weniger Code/angepasste Strings als bei Verwendung von information_schema.columns)

IF object_id('DF_SomeName', 'D') IS NULL BEGIN
    Print 'Creating Constraint DF_SomeName'
   ALTER TABLE Employee ADD CONSTRAINT DF_SomeName DEFAULT N'SANDNES' FOR CityBorn;
END

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