Antworten:
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
NOT NULL
in der Abfrage erwähnt wird, andernfalls wird sie NULL
standardmäßig festgelegt. ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
alter table Employee alter column salary numeric(22,5)
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
Das Ausführen ALTER COLUMN
ohne Erwähnung des Attributs NOT NULL
führt dazu, dass die Spalte in nullable geändert wird, sofern dies noch nicht der Fall ist. Daher müssen Sie zuerst prüfen, ob die Spalte nullwertfähig ist, und wenn nicht, ein Attribut angeben NOT NULL
. Alternativ können Sie die folgende Anweisung verwenden, die die Nullfähigkeit der Spalte im Voraus überprüft und den Befehl mit dem richtigen Attribut ausführt.
IF COLUMNPROPERTY(OBJECT_ID('Employee', 'U'), 'Salary', 'AllowsNull')=0
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
ELSE
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NULL
Wählen Sie Tabelle -> Design -> Wert im Datentyp ändern (siehe folgende Abbildung).
Speichern Sie das Tabellen-Design.
Ein interessanter Ansatz ist hier zu finden: So vergrößern Sie Ihre Spalten ohne Ausfallzeiten von spaghettidba
Wenn Sie versuchen, diese Spalte mit einem direkten Befehl "ALTER TABLE" zu vergrößern, müssen Sie warten, bis SQLServer alle Zeilen durchläuft und den neuen Datentyp schreibt
ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;
Um diese Unannehmlichkeiten zu überwinden, gibt es eine magische Pille zur Spaltenvergrößerung, die Ihr Tisch einnehmen kann und die als Zeilenkomprimierung bezeichnet wird. (...) Mit der Zeilenkomprimierung können Ihre Spalten mit fester Größe nur den Platz belegen, den der kleinste Datentyp benötigt, in den die tatsächlichen Daten passen.
Wenn die Tabelle auf ROW
Ebene komprimiert wird, ALTER TABLE ALTER COLUMN
handelt es sich nur um eine Metadatenoperation.