Marco Pizzamiglio wrote:
> Carmelo ha scritto:
>
>> Ho una tabella "Config" con due campi
>> Key Testo (chiave primaria)
>> Valore Testo
>> Dovrei fare una INSERT INTO solo se il testo della key non esiste
>> qualcosa del genere:
>> Insert into config (Key, Valore) Value ("Pippo", "Topolino")
>> Where Key = "Pippo" not exist.
> ...
> Puoi eseguire la query senza criteri, togliendo del tutto il Where.
> Se Key �
> la chiave primaria della tabella i record gi� esistenti verranno
> automaticamente scartati, previa comparsa di un avviso.
> Altrimenti prova cos�, che � pi� professionale:
> WHERE NOT EXISTS (SELECT Key from Config WHERE Key="Pippo")
Ciao Marco,
come stringa sembra molto pi� professionale ;-) ma come comando
non puo funzionare. SQL dopo la clausola VALUES non consente niente.
Quindi un WHERE dopo VALUES deve dare un errore di sintassi.
Se assolutamente � necessario di fare il controllo nell'enunciato SQL
(invece del PK o un If in codice) puo usare SELECT invece di VALUES
e giochetti come:
INSERT INTO config (Key, Valore)
SELECT "Pippo", "Topolino" FROM config
WHERE 0 = (SELECT Count(*) FROM config WHERE Key="Pippo")
GROUP BY "Pippo"
--
Ciao
Karl
*********
Access FAQ:
http://www.donkarl.com/it