2010-08-24 10 views
197

Desidero modificare una colonna della tabella come annullabile. Ho usato:Modifica di una colonna come annullabile

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL 

Questo dà un errore a Modify. Qual è la sintassi corretta?

+6

si prega di inviare il messaggio di errore in futuro –

+1

Ho rimosso il tag SQL Server come sembra che questo è diventato un generale gratuito per tutti. –

risposta

329

Supponendo SQL Server (in base alle domande precedenti):

ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL 

Sostituire INT con il tipo di dati effettivo.

5

Anche se non so quale RDBMS si sta utilizzando, è probabilmente necessario fornire l'intera specifica della colonna, non solo dire che ora si desidera che sia annullabile. Ad esempio, se è attualmente INT NOT NULL, è necessario emettere ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.

+0

Questa è una risposta corretta e descrittiva, quindi basta chiarire se 'Null' | 'NOT NULL' non è specificato, la colonna sarà annullabile. –

4

Come altri hanno osservato, la sintassi precisa per il comando varia tra diversi tipi di DBMS. La sintassi si utilizza Works in Oracle:

SQL> desc MACAddresses 
Name          Null? Type 
----------------------------------------- -------- ---------------------------- 
COMPUTER           NUMBER 
MACADDRESS           VARCHAR2(12) 
CORRECTED_MACADDRESS      NOT NULL VARCHAR2(17) 

SQL> alter table MACAddresses 
    2  modify corrected_MACAddress null 
    3/

Table altered. 

SQL> desc MACAddresses 
Name          Null? Type 
----------------------------------------- -------- ---------------------------- 
COMPUTER           NUMBER 
MACADDRESS           VARCHAR2(12) 
CORRECTED_MACADDRESS        VARCHAR2(17) 

SQL> 
37

per Oracle utenti Database 10g:

alter table mytable modify(mycolumn null); 

Si ottiene "ORA-01.735: opzione non valida ALTER TABLE" quando si tenta altrimenti

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL; 
+0

Fresco, non è necessario specificare il tipo di dati, solo "null" per renderlo nullable. –

29

Se si trattasse della sintassi MySQL, il tipo sarebbe stato mancante, come indicato da altre risposte. sintassi MySQL corretta sarebbe stata:

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL 

Distacco qui per chiarezza per gli utenti di MySQL.

7

in PostgreSQL è:

ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL; 
Problemi correlati