2012-03-27 22 views
7

Secondo Wikipedia questa sintassi sembra corretto ...SQL Server errore di query

INSERT INTO dbo.metadata_type ("name", "publishable") 
VALUES 
("Content Owner", 0), 
("Content Coordinator", 0), 
("Writer", 0), 
("Content Type", 0), 
("State", 1), 
("Business Segment", 0), 
("Audience", 0), 
("Product Life Cycle Stage", 0), 
("Category", 0), 
("Template", 0) 

sto ottenendo gli errori. Ho provato a racchiudere i nomi delle colonne in `ma non ha funzionato ...

Codice errore 207, stato SQL 42S22: nome colonna non valido" Proprietario contenuto ".
Codice errore 207, stato SQL 42S22: nome colonna "Content Coordinator" non valido.
Codice errore 207, stato SQL 42S22: nome colonna "Writer" non valido.
Codice errore 207, stato SQL 42S22: nome colonna "Tipo di contenuto" non valido.
Codice errore 207, stato SQL 42S22: nome colonna "Stato" non valido.

+2

uso singola citazioni da inserire! –

+4

Oltre all'utilizzo di virgolette singole, questa sintassi che specifica più tuple in una singola istruzione 'INSERT' è valida in SQL Server ** 2008 ** e solo più recente - non funziona nelle versioni precedenti. –

risposta

12

In SQL Server, valori stringa sono delimitati da ', non ".

Inoltre, i nomi di colonna devono essere racchiusi tra parentesi quadre o lasciati come sono (se non contengono spazi).

vostra query dovrebbe, quindi, simile a questa:

INSERT INTO dbo.metadata_type (name, publishable) VALUES 
    ('Content Owner', 0), 
    ('Content Coordinator', 0), 
    ('Writer', 0), 
    ('Content Type', 0), 
    ('State', 1), 
    ('Business Segment', 0), 
    ('Audience', 0), 
    ('Product Life Cycle Stage', 0), 
    ('Category', 0), 
    ('Template', 0) 
3

È necessario utilizzare le virgolette singole al posto delle virgolette doppie per i vostri valori e senza virgolette a tutti per specificare quale colonna inserire:

INSERT INTO dbo.metadata_type (name, publishable) VALUES 
('Content Owner', 0), 
('Content Coordinator', 0), 
('Writer', 0), 
('Content Type', 0), 
('State', 1), 
('Business Segment', 0), 
('Audience', 0), 
('Product Life Cycle Stage', 0), 
('Category', 0), 
('Template', 0) 
3

L''errore 207' di sql è correlato al nome della colonna errato della tabella. Sembra che tu stia cercando di recuperare i dati sul nome della colonna che non esiste nella tabella specificata. Ti suggerisco di assicurarti che stai usando il nome corretto della colonna nella tua richiesta. Controlla anche che il nome della tabella sia corretto menzionato nella query o meno. Prova questo e fammi sapere se stai ricevendo ancora lo stesso errore o no.

se si sta cercando di inserire i valori ad un Varchar utilizzando "" provare ad usare semplice ''

come:

INSERT INTO dbo.metadata_type (name, publishable) VALUES 
('Content Owner', 0), 
('Content Coordinator', 0), 
('Writer', 0), 
('Content Type', 0), 
('State', 1), 
('Business Segment', 0), 
('Audience', 0), 
('Product Life Cycle Stage', 0), 
('Category', 0), 
('Template', 0) 
+0

la tua query contiene errori: i nomi delle colonne non devono essere racchiusi tra virgolette. –

+0

@FrancisP Prova ora. –

+2

dovrebbe essere: INSERIRE in dbo.metadata_type (name, publishable) ... –

0

Se stai cercando di inserire più righe con una sola dichiarazione dell'inserto, ecco un altro modo per farlo

INSERT INTO dbo.metadata_type (name, publishable) 
SELECT 'Content Owner', 0 
UNION ALL 
SELECT 'Content Coordinator', 0 
UNION ALL 

e così via