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?
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 zur Angabe eines Constraint-Namens, damit SQL Server keinen zufälligen Namen erstellt.
MSSQL ist seltsam, wenn es Standardwerte als "Beschränkungen" bezeichnet. Wenn überhaupt, sind sie Entspannungen die gegenüber einer Einschränkung! Sie machen mehr Dinge gültig, nicht weniger.
Es ist nicht seltsam, wenn Sie in einer alternativen Weise wie denken: Die Standardeinschränkung verhindert, dass MSSQL einen Fehler ausgibt, wenn Sie die Spalte nicht angeben. Es ist also keine Einschränkung für den Benutzer, sondern eine Einschränkung für MSSQL.
Das funktioniert in MSSQL, hat aber den Nachteil, dass es die Einschränkung, die es im Hintergrund erstellt, nicht benennt (siehe die höher gestimmte Antwort oben).
@Contango Ich denke, es ist besser, sich nicht die Mühe zu machen, jede einzelne Einschränkung zu benennen, für den Fall, dass Sie eine von ihnen ändern müssen. Schreiben Sie einfach eine Verfahren zum Weglassen automatisch benannter Beschränkungen und Sie müssen nie wieder einen Namen nennen + können mit all den anderen unbenannten umgehen
@Jonny Leeds. Guter Punkt. Ich benenne auch gerne die Constraints, da dies eine gute Dokumentation für alle anderen ist, die versuchen, das Datenbankschema zu ändern (oder einfach nur zu verstehen). Das ist weniger wichtig, wenn man als Einzelkämpfer in einem Team von einem arbeitet.
Die korrekte Vorgehensweise ist wie folgt:
Führen Sie den Befehl aus:
sp_help [table name]
Kopieren Sie den Namen des CONSTRAINT
.
Lassen Sie die DEFAULT CONSTRAINT
:
ALTER TABLE [table name] DROP [NAME OF CONSTRAINT]
Führen Sie den folgenden Befehl aus:
ALTER TABLE [table name] ADD DEFAULT [DEFAULT VALUE] FOR [NAME OF COLUMN]
StackOverflow.com ist nur in englischer Sprache verfügbar. Die portugiesische Seite ist pt.stackoverflow.com
Die Lösung von Hoodaticus war perfekt, vielen Dank, aber ich brauchte es auch, um es wiederaufrufbar zu machen und fand diesen Weg, um zu überprüfen, ob es getan wurde...
IF EXISTS(SELECT * FROM information_schema.columns
WHERE table_name='myTable' AND column_name='myColumn'
AND Table_schema='myDBO' AND column_default IS NULL)
BEGIN
ALTER TABLE [myDBO].[myTable] ADD DEFAULT 0 FOR [myColumn] --Hoodaticus
END
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.
1 Stimmen
Was haben Sie in MSDN ALTER TABLE gelesen...? msdn.microsoft.com/de-us/library/ms187742(SQL.90).aspx
2 Stimmen
Mögliche Duplikate von T-SQL-Befehl zum Hinzufügen eines Standard-Constraints
0 Stimmen
Mögliche Duplikate von Hinzufügen einer Spalte mit einem Standardwert zu einer vorhandenen Tabelle in SQL Server
1 Stimmen
Das ist die Syntax von mysql.
1 Stimmen
Warum können sich nicht alle an einen standard halten? (keine wirkliche frage, alle beziehen sich auf microsoft und mysql oder andere anbieter). gibt es überhaupt einen ansi/iso standard, um dies zu tun?