Domanda

Ho una tabella utenti. Voglio inserire i dati nella mia tabella utente.

Ho una dichiarazione:

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 esiste la tabella. Voglio inserire i dati al suo interno.

Perché Sybase non sta giocando bene? : (

(Sybase non è il mio punto di forza, lo è Oracle. Potrebbe trattarsi solo di un problema di comprensione o di mancanza. Questo non accadrà mai in Oracle ...)

È stato utile?

Soluzione

SELEZIONA ... INTO serve per creare nuove tabelle.

Usa INSERISCI ... SELEZIONA per le tabelle esistenti. ad esempio:

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

Altri suggerimenti

L'hai provato in questo modo?

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

Sembra che stia cercando implicitamente di creare una nuova tabella per te chiamata my_table.

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 specificare anche le colonne nell'istruzione insert piuttosto che supporre che saranno nello stesso ordine della selezione.

Usa la parola chiave "esistente" dopo "in" per inserirla nella tabella esistente.

SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top