Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Creazione tabella Access

    Salve ha tutti, ho un piccolo problemino con Access.

    Da codice creo una tabella in un DB tramite l'esecuzione di un istruzione SQL del tipo "CREATE TABLE Prova ( ID counter CONSTRAINT MIO PRIMARY KEY, Cli INTEGER NULL, Data DATE NULL, Descr memo )"

    Il mio problema è che la colonna "Cli" deve avere l'opzione "Indicizzata (Duplicati non ammessi)", come posso fare ?

    Ho cercato in tutti i manuali SQL ma nessuno ne parla ....

    Sono disperato
    Uno che sta imparando...

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    Devi creare l'indice tramite un'istruzione SQL; nel tuo caso:

    CREATE UNIQUE INDEX [nome_indice] ON [tabella]([cli]) ON [PRIMARY]

    Se l'indice l'avevi già creato puoi aggiungere l'opzione "WITH DROP_EXISTING" in modo che prima di creare quello nuovo venga cancellato il vecchio:

    CREATE UNIQUE INDEX [nome_indice] ON [tabella]([cli]) WITH DROP_EXISTING ON [PRIMARY]

    Spero ti sia utile

  3. #3
    Potresti essere + chiaro ?

    In che senso devo creare un indice ?
    Quando la creo da access non faccio nulla di tutto questo ?!??!??!?
    Uno che sta imparando...

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    Forse sono io che non ho capito bene. Spiegami meglio....
    Se la tabella la vuoi creare usando Access, usi semplicemente, ad esempio "Crea tabella in visualizzazione struttura" ed indichi che il tuo campo "cli" sia indicizzato con duplicati non ammessi.
    Se invece la tabella la vuoi creare mediante l'esecuzione di un comando SQL (per esempio dopo esserti collegato al DB con MS Query) devi prima creare la tabella (con il comando CREATE TABLE ....., quello che hai messo tu) e poi devi creare l'indice con il comando che ti ho indicato io. In sostanza devi eseguire due comandi SQL.
    Ciao

  5. #5
    È il secondo caso, cioè devo creare la tabella da VB6.

    Faccio la CREATE TABLE e tutto ok, il problema lo ho qui

    CREATE UNIQUE INDEX [nome_indice] ON Prova.cli ON [PRIMARY]

    mi spieghi i due parametri [nome_indice] e [primary] cosa devono essere ?

    Grazie dell'aiuto
    Uno che sta imparando...

  6. #6
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    nome_indice è semplicemente il nome dell'indice; nello stesso modo in cui assegni un nome ad una tabella, ti viene richiesto di dare un nome all'indice; puoi chiamarlo 'pippo' o ....

    Per quanto riguarda primary mi è venuto il dubbio di averti indotto in errore; infatti io ho fatto le mie prove du MSDE e non su Access e non credo che Access li preveda
    (primary è il filegroup a cui verrà associato il tuo file indice; i filegroup sono un modo di organizzare i file che compongono un database; non è obbligatorio metterlo, è solo un modo di tenere le cose più ordinate)

    Prova quindi solamente a scrivere CREATE UNIQUE INDEX [nome_indice] ON Prova.cli

  7. #7
    Non funziona.

    Ho provato con

    CREATE UNIQUE INDEX pippo ON Prova.Cli ;

    ma non funza mi ritorna un errore.
    Uno che sta imparando...

  8. #8
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    Adesso l'ho provata....

    CREATE UNIQUE INDEX pippo ON Prova(Cli)

    Fammi sapere...

  9. #9
    Funziona solo che ho sbagliato io la domanda iniziale.

    L'indice deve consentire i duplicati.

    Ho tolto UNIQUE e funziona alla grande !!!

    Grazie 30000000000.....

    Ti devo fare un monumento per l'aiuto che mi hai dato in questi giorni.



    Alla Prox, spero di ricambiare io.
    Uno che sta imparando...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.