2010-03-26 13 views
110

qualcuno può dirmi dove si trova l'errore nella query seguentetavolo Alter aggiungere più colonne MS SQL

ALTER TABLE Countries 
ADD ( 
HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit, 
HasText bit); 

ALTER TABLE Regions 
ADD (HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit 
HasText bit); 

ALTER TABLE Provinces 
ADD (HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit 
HasText bit); 


ALTER TABLE Cities 
ADD (HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit 
HasText bit); 

Alter table Hotels 
Add 
{ 
HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit, 
HasHotelPhotoInReadyStorage bit, 
HasHotelPhotoInWorkStorage bit, 
HasHotelPhotoInMaterialStorage bit, 
HasReporterData bit, 
HasMovieInReadyStorage bit, 
HasMovieInWorkStorage bit, 
HasMovieInMaterialStorage bit 
}; 

ottengo i seguenti errori:

Msg 102, Level 15, State 1, Line 2 
Incorrect syntax near '('. 
Msg 102, Level 15, State 1, Line 9 
Incorrect syntax near '('. 
Msg 102, Level 15, State 1, Line 15 
Incorrect syntax near '('. 
Msg 102, Level 15, State 1, Line 22 
Incorrect syntax near '('. 
Msg 102, Level 15, State 1, Line 29 
Incorrect syntax near '{'. 
+0

Eventuali duplicati di [come aggiungere più colonne di tabella SQL e aggiungere un vincolo predefinito su uno di essi?] (http://stackoverflow.com/questions/15184939/how-to-add-multiple-columns-to-sql -table-and-add-default-constraint-on-one -th) –

risposta

140

Elimina parentesi e parentesi graffe, nessuna delle due è richiesta quando si aggiungono colonne.

+7

Controlla anche le virgole, sembra che manchi diversi per le seconde ultime colonne che vengono aggiunte –

8
Alter table Hotels 
Add 
{ 
HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit, 
HasHotelPhotoInReadyStorage bit, 
HasHotelPhotoInWorkStorage bit, 
HasHotelPhotoInMaterialStorage bit, 
HasReporterData bit, 
HasMovieInReadyStorage bit, 
HasMovieInWorkStorage bit, 
HasMovieInMaterialStorage bit 
}; 

Sopra si sta utilizzando { ,}.

virgole Inoltre, si sta perdendo:

ALTER TABLE Regions 
ADD (HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit <**** comma needed here 
HasText bit); 

è necessario rimuovere le staffe e assicurarsi che tutte le colonne hanno una virgola, se necessario.

+0

Perché '(' Si dà un errore! – Adaptabi

109

è necessario rimuovere le staffe

ALTER TABLE Countries 
ADD 
HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit, 
HasText bit; 
28

questo dovrebbe funzionare in T-SQL

ALTER TABLE Countries ADD 
HasPhotoInReadyStorage bit, 
HasPhotoInWorkStorage bit, 
HasPhotoInMaterialStorage bit, 
HasText bit GO 

http://msdn.microsoft.com/en-us/library/ms190273(SQL.90).aspx

+1

Non aggiungi COLONNA, solo ALTER TABLE Paesi AGGIUNGI HasPhotoInReadyStorage ... – jorgebg

+1

@jorgebg grazie per aver trovato il tempo di correggermi – Stefano

+1

fare attenzione a non includere il GO, che viene utilizzato solo nel server MSSQL mgmt studio ma non è una parola chiave sql valida. – increddibelly

1
ALTER TABLE Regions 
ADD (HasPhotoInReadyStorage bit, 
    HasPhotoInWorkStorage bit, 
    HasPhotoInMaterialStorage bit *(Missing ,)* 
    HasText bit); 
+0

Si prega di modificare con ulteriori informazioni. Le risposte solo per codice e "prova questo" sono scoraggiate, perché non contengono contenuti ricercabili e non spiegano perché qualcuno dovrebbe "provare questo". Facciamo uno sforzo qui per essere una risorsa per la conoscenza. –

Problemi correlati