Ich versuche, eine Spalte von einem Varchar (50) zu einem Nvarchar (200) zu ändern. Was ist der SQL-Befehl, um diese Tabelle zu ändern?Wie änderst du den Datentyp einer Spalte in MS SQL?
Antwort
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.
Verwenden Sie die Anweisung Alter table.
Alter table TableName Alter Column ColumnName nvarchar(100)
Vergessen Sie nicht die Nullität.
ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
Was ist mit Null-Fähigkeit? Wenn ich es nicht ändern will - was bringt es, es wieder einzustellen? –
^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
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.
Versuchen Sie folgendes:
ALTER TABLE "table_name"
MODIFY "column_name" "New Data Type";
"Ändern" ist offensichtlich nicht korrekt. Bitte vergleichen Sie mit anderen Antworten. – Frank
Dies ist alt, aber scheint, dass Kai Tzer MySql und/oder Oracle DDLs bewiesen hat. –
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
Bitte fügen Sie weitere Informationen zu Ihrer Antwort hinzu und formatieren Sie den Code/die Abfrage! –
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)
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. –
@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