2009-06-18 14 views
10

Ho una tabella utente. Voglio inserire i dati nella mia tabella utente.Impossibile inserire nella tabella perché la tabella esiste già?

mi hai dichiarazioni:

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

ottengo il seguente errore:

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

Sì, grazie Sybase. Lo so. So che il tavolo esiste. Voglio inserire i dati in esso.

Perché Sybase non funziona correttamente? :(

(Sybase non è il mio forte, Oracle è. Questo può essere solo un problema di comprensione, o di lì. Questo non sarebbe mai accadere in Oracle ... la mancanza)

+0

il modo in cui si sta facendo implica la creazione della tabella – BlackTigerX

risposta

19

SELECT ... INTO è per la creazione di nuove tabelle.

siamo e INSERIRE ... SELEZIONA per le tabelle esistenti. ad esempio:

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

sì, questo descrive il problema e la soluzione – BlackTigerX

+0

Oh, vedo ... Questo è interessante sapere. Non sapevo di poterlo fare in Sybase. Saluti, Peter. – glasnt

4

Hai provato in questo modo intorno?

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

sembra che si sta cercando di creare implicitamente un nuovo tavolo per voi chiamato my_table.

1

Non sono sicuro di SYBASE ma in DB2 questo funziona per me


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

Penso che sia più sicuro per specificare le colonne della dichiarazione dell'inserto così piuttosto che assumere essi saranno in lo stesso ordine della selezione.

0

Utilizzare la parola chiave "esistente" dopo "in" per inserire nella tabella esistente.

SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME] 
Problemi correlati