2009-03-09 9 views

risposta

452
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.

+1

perché dovrebbe essere specificato primaria? Qual è il vantaggio? Tutto ciò che voglio lasciare com'è, non devo menzionarlo, penso. –

+2

@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

19

Utilizzare l'istruzione di tabella Modifica.

Alter table TableName Alter Column ColumnName nvarchar(100) 
156

Non dimenticare il nullability.

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

Qual è il problema con il nullability? Se non voglio cambiarlo, qual è il vantaggio nel settarlo di nuovo? –

+2

^L'impostazione predefinita sarà NULL dopo che l'istruzione alter table termina l'esecuzione senza definire esplicitamente cosa dovrebbe essere. – sc305495

2

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.

-10

Prova questo:

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

"Modifica" ovviamente non è corretto. Si prega di confrontare con altre risposte. – Frank

+0

Questo è vecchio, ma sembra che Kai Tzer stesse dimostrando MySql e/o Oracle DDL. –

9

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

+1

per favore aggiungi ulteriori informazioni alla tua risposta e formatta il codice/query! –

2

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)