2009-06-18 6 views
10

Ich habe eine Benutzertabelle. Ich möchte Daten in meine Benutzertabelle einfügen.Kann nicht in Tabelle eingefügt werden, weil die Tabelle bereits existiert?

Ich habe eine Erklärung:

SELECT columna, columnb, 
INTO my_table 
FROM my_other_table 
WHERE (... conditions ...) 

ich die folgende Fehlermeldung erhalten:

SQL Server Error on (myserver) Error:2714 at Line:1 Message:There is already an object named 'my_table' in the database. 

Ja, danke Sybase. Ich weiß das. Ich weiß, dass der Tisch existiert. Ich möchte Daten einfügen.

Warum spielt Sybase nicht gut? :(

(Sybase ist nicht meine Stärke, Oracle ist. Dies kann nur ein Verständnis Problem sein, oder das Fehlen von dort. Dies würde nie ... in Oracle geschehen)

+0

so, wie Sie es tun werden impliziert die Erstellung der Tabelle – BlackTigerX

Antwort

19

SELECT ... INTO für die Erstellung neuer Tabellen ist.

uns e INSERT ... SELECT für vorhandene Tabellen. zB:

INSERT INTO my_table 
SELECT columna, columnb, 
FROM my_other_table 
WHERE (... conditions ...) 
+0

ja, das Problem beschreibt, und die Lösung – BlackTigerX

+0

Oh, ich verstehe ... Das weiß interessant. Ich wusste nie, dass du das in Sybase machen kannst. Prost, Peter. – glasnt

4

Haben Sie versucht, auf diese Weise um?

Insert INTO my_table 
SELECT columna, columnb, 
FROM my_other_table 
WHERE (... conditions ...) 

es scheint, dass es eine neue Tabelle erstellen implizit versucht, für Sie my_table genannt.

1

Nicht sicher von SYBASE aber in DB2 das funktioniert für mich


INSERT INTO my_table 
(
     columna, 
     columnb 
) 
SELECT 
     columna, 
     columnb 
FROM 
     my_other_table 
WHERE 
     (... conditions...) 

Ich denke, die sicherer, um die Spalten in der INSERT-Anweisung angeben und nicht zu annehmen, dass sie in dem sein würden gleiche Reihenfolge wie die Auswahl.

0

Verwenden Sie das Schlüsselwort 'existing' nach 'in', um es in die vorhandene Tabelle einzufügen.

SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME] 
Verwandte Themen