2009-03-09 8 views

Antwort

452
ALTER TABLE TableName 
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL] 

EDIT Wie bereits erwähnt NULL/NOT NULL angegeben worden sein, siehe Rob's answer auch.

+1

Warum es sollte festgelegt werden? Was ist der Vorteil? Alles was ich verlassen möchte, wie es ist, muss ich nicht erwähnen, denke ich. –

+2

@ThincredibleJan Das wäre cool, aber leider funktioniert es nicht so. Wenn Sie den Befehl ALTER TABLE Tabellenname ALTER COLUMN ColumnName eingeben, um eine vorhandene Spalte zu ändern, die '[NOT NULL]' ist, und Sie sie nicht explizit angeben, wird sie nachher '[NULL] 'sein, da dies der Standardwert ist . – takrl

19

Verwenden Sie die Anweisung Alter table.

Alter table TableName Alter Column ColumnName nvarchar(100) 
156

Vergessen Sie nicht die Nullität.

ALTER TABLE <schemaName>.<tableName> 
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL] 
+1

Was ist mit Null-Fähigkeit? Wenn ich es nicht ändern will - was bringt es, es wieder einzustellen? –

+2

^Es wird standardmäßig auf NULL gesetzt, nachdem die alter table-Anweisung die Ausführung beendet hat, ohne explizit festzulegen, was sie sein soll. – sc305495

2

Solange Sie die Größe Ihres Varchar erhöhen, sind Sie in Ordnung. Gemäß der Alter Table Referenz:

Die Verringerung der Genauigkeit oder Skalierung einer Spalte kann zu Datenabschneidung führen.

-10

Versuchen Sie folgendes:

ALTER TABLE "table_name" 
MODIFY "column_name" "New Data Type"; 
+1

"Ändern" ist offensichtlich nicht korrekt. Bitte vergleichen Sie mit anderen Antworten. – Frank

+0

Dies ist alt, aber scheint, dass Kai Tzer MySql und/oder Oracle DDLs bewiesen hat. –

9

Die Syntax eine Spalte in einer vorhandenen Tabelle in SQL Server (Transact-SQL) zu ändern ist:

ALTER TABLE table_name 
    ALTER COLUMN column_name column_type; 

Zum Beispiel:

ALTER TABLE employees 
    ALTER COLUMN last_name VARCHAR(75) NOT NULL; 

Dieser SQL Serv Das Beispiel ALTER TABLE ändert die Spalte last_name in einen Datentyp VARCHAR(75) und erzwingt, dass die Spalte keine Nullwerte zulässt.

siehe

+1

Bitte fügen Sie weitere Informationen zu Ihrer Antwort hinzu und formatieren Sie den Code/die Abfrage! –

2

Für den Datentyp zu ändern

alter table table_name 
alter column column_name datatype [NULL|NOT NULL] 

Zum Ändern Primärschlüssel

ALTER TABLE table_name 
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)