Sto provando a cambiare una colonna da un varchar (50) a un nvarchar (200). Qual è il comando SQL per modificare questa tabella?Come si modifica il tipo di dati di una colonna in MS SQL?
risposta
ALTER TABLE TableName
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL]
EDIT Come osservato NULL/NOT NULL avrebbe dovuto essere specificato, vedere Rob's answer pure.
Utilizzare l'istruzione di tabella Modifica.
Alter table TableName Alter Column ColumnName nvarchar(100)
Non dimenticare il nullability.
ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
Qual è il problema con il nullability? Se non voglio cambiarlo, qual è il vantaggio nel settarlo di nuovo? –
^L'impostazione predefinita sarà NULL dopo che l'istruzione alter table termina l'esecuzione senza definire esplicitamente cosa dovrebbe essere. – sc305495
Finché si sta aumentando le dimensioni del vostro varchar sei ok. Come da riferimento Alter Table:
La riduzione della precisione o della scala di una colonna può causare il troncamento dei dati.
Prova questo:
ALTER TABLE "table_name"
MODIFY "column_name" "New Data Type";
"Modifica" ovviamente non è corretto. Si prega di confrontare con altre risposte. – Frank
Questo è vecchio, ma sembra che Kai Tzer stesse dimostrando MySql e/o Oracle DDL. –
La sintassi per modificare una colonna in una tabella esistente in SQL Server (Transact-SQL) è:
ALTER TABLE table_name
ALTER COLUMN column_name column_type;
Ad esempio:
ALTER TABLE employees
ALTER COLUMN last_name VARCHAR(75) NOT NULL;
Questo servizio SQL L'esempio ALTER TABLE
modificherà la colonna denominata last_name
come un tipo di dati VARCHAR(75)
e imporrà alla colonna di non consentire valori nulli.
vedere
per favore aggiungi ulteriori informazioni alla tua risposta e formatta il codice/query! –
Per cambiare il tipo di dati
alter table table_name
alter column column_name datatype [NULL|NOT NULL]
Per cambiare chiave
ALTER TABLE table_name
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)
perché dovrebbe essere specificato primaria? Qual è il vantaggio? Tutto ciò che voglio lasciare com'è, non devo menzionarlo, penso. –
@TheincredibleJan Sarebbe bello, ma sfortunatamente non funziona in questo modo. Se si emette un comando 'ALTER TABLE TableName ALTER COLUMN ColumnName' per cambiare una colonna esistente che è' [NOT NULL] ', e non la si specifica esplicitamente, sarà' [NULL] 'successivamente, poiché questa è l'impostazione predefinita . – takrl