2013-06-19 19 views
7

Ich habe INVOICETABLE ich Wert eingefügt werden soll durch keine Spaltennamen Angabe SQL Server verwenden, ich habe dies versucht, aber es ist nichtINSERT in die Tabelle ohne Spaltennamen Angabe

INSERT INTO INVOICE 
VALUES(1,1,KEYBOARD,1,15,5,75) 
+2

ohne Ihre Tabellenstruktur, wir kann nicht helfen ... –

+2

und der Fehler ist? Was ist 'KEYBOARD'? Haben Sie alle Spalten angegeben? Es ist gut dokumentiert http://msdn.microsoft.com/en-us/library/ms174335.aspx – Jodrell

+2

INSERT INTO Tabellenname (Spalte1, Spalte2, Spalte3, ...) VALUES (Wert1, Wert2, Wert3, ...) ; – null

Antwort

8

working..please helfen Warum würdest du das machen wollen? Wenn Sie Spaltennamen nicht angeben, handelt es sich um eine schlechte Codierungspraxis.

In Ihrem Fall aber muss keyboard von einfachen Anführungszeichen umgeben sein:

INSERT INTO INVOICE VALUES(1,1, 'KEYBOARD',1,15,5,75) 

Wenn Sie nur die Spaltennamen nicht eingeben möchten, können Sie sie einfach in SQL Server Management Studio bekommen. Öffnen Sie den "Objektbrowser", öffnen Sie die Datenbank und wählen Sie "Tabellen". Wählen Sie die Tabelle Invoice. Eine der Optionen ist "Spalten".

Klicken Sie einfach auf den Namen der "Spalten" (müssen Sie ihn nicht öffnen) und ziehen Sie ihn in ein Abfragefenster. Es wird die Liste der Spalten einfügen.

18

Solange Sie die richtige Anzahl von Spalten in Ihrer INSERT-Anweisung haben, und solange alle Werte außer KEYBOARD ein numerischer Datentyp sind, und solange Sie über geeignete Berechtigungen verfügen, sollte dies funktionieren.

INSERT INTO INVOICE VALUES(1,1,'KEYBOARD',1,15,5,75); 

SQL erfordert einfache Anführungszeichen um Textwerte.

Aber keine Spaltennamen zu verwenden ist keine gute Übung. Es ist nicht ungewöhnlich für Leute, die Reihenfolge von Spalten in einer Tabelle zu ändern. Die Reihenfolge der Spalten zu ändern, ist auch keine gute Übung, aber einige Leute bestehen darauf, es trotzdem zu tun.

Wenn jemand das tut und die 5. und 7. Spalte in Ihrer Tabelle tauscht, wird Ihre INSERT-Anweisung immer noch erfolgreich sein - beide Spalten sind numerisch -, aber das INSERT wird Ihre Daten vermasseln.

+0

Ich habe gerade diesen Fall erlebt, als sich der Code in der Produktion auflöste, weil mein Team Lead gerade die Tabelle auf Prod DB in anderer Reihenfolge erstellt hatte, als sie auf Staging DB waren. Also, schlechte Praxis auf beiden Seiten. –

1
INSERT INTO INVOICE VALUES(1,1,'KEYBOARD',1,15,5,75); 

Sie vergessen, die einfachen Anführungszeichen in Tastatur enthalten, Text einfache Anführungszeichen in SQL erforderlich

2

ja direkt Werte in die Tabelle wie folgt einfügen:

insert into `schema`.`tablename` values(val1,val2,val3); 
Verwandte Themen