Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333

    [SQL Server] considerazioni su id autoincrementante

    Provo a fare una domanda un po complessa ( almeno per me )

    Sto creando un nuovo DB contabile con una tabella fornitori e una tabella clienti
    _____( per vari motivi , e non mi dilungo, abbiamo deciso di fare 2 tabelle distinte )

    Dovro poi per il fisco a creare una query di unione
    delle 2 tabelle per generare la " anagrafica clienti/fornitori "

    Vorrei sostituire la classica Key autoincrementante sulle 2 tabelle
    con qualcosa che sia ancora autoincrementante ma che tenga conto
    del massimo fra i valori delle 2 tabelle e pio sommi 1

    esempio
    TABELLA CLIENTI
    ___Giovanni_____1
    ___Pasquale_____2
    ___Andrea______4
    ___Marco_______6

    TABELLA FORNITORI
    ___Mauro_______3
    ___Renato______5
    ___Massimo_____7
    Con questo accorgimento potrei semplificarmi la vita nella query di unione e poi in tutta
    la gestione della applicazione.
    __________________________________________________ __________

    Naturalmente ho gia preso in considerazione l'idea di mettere di
    default un campo con predefinita "C" per clienti e "F" per fornitori


    Oppure nella applicazione usare la funzione DMax che valuta il massimo Id
    delle 2 tabelle e ne somma 1

    __________________________________________________ _____________


    Vorrei qualcosa di piu brillante e semplice ma mi mancano idee

    Se veramente semplice lo potrei generalizzare a tutte le tabelle del DB






    Grazie

  2. #2
    perché vuoi fare questo? solo per avere in ordine e senza buchi l'output elenco cli/for?

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    No non è per non avere buchi.

    Vorrei farlo perche nella query di uniome " Anagrafica clienti/fornitori " vorrei poter individuare ancora con il numero di Id il cliente o il fornitore in modo univoco.

    __________________________________________________ ____________
    Detto in altre parole vorrei evitare di avere nell'unica anagrafica Clienti/Fotnitori
    un cliente con Id 12784
    e un fornitore con Id 12784
    ( Ti ticordo che la anagrafica è una query di unione fra 2 tabelle. )




    Saluti

  4. #4
    cervellotico... comunque, fatti una terza tabella di "anagrafiche generiche", fai un primo inserimento in quella, ti prendi l'id e poi fai un secondo inserimento in quella giusta

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Noi che ci pensiamo softeristi siamo tutti un po cervellotici.

    Quella della terza tabella di appoggio per un primo inserimento è una buona idea.
    Potrei evolverla in una tabella di 1 sol record che contiene il valore massimo
    degli Id delle varie tabelle interessate.
    Ogni nuovo record prende da questa il suo Id.
    __________________________________________________ ___

    Ma ho appena avuto una idea che mi piace ancor di piu per semplicita.
    ___ ne sono quasi entusiasta.
    La tabella Fornitori con Id autoincrementante da +1 incremento +1
    La tabella Clienti con Id autoincrementante da -1 incremento -1

    Raggiungo semplicemente l'obbiettivo e il segno dell' Id mi dice dell'origine

    Grazie per l'aiuto

  6. #6
    Originariamente inviato da nman
    Noi che ci pensiamo softeristi siamo tutti un po cervellotici.
    ah, allora non sei un softerista (sic!) questo spiega tutto




  7. #7
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Certo che non sono softerista.

    Io ho studiato fisica e biologia.


    Ma questa mattina in una riunione con la crema dei softeristi che
    volevano fare Trigger Viste e altre cose simili li ho sbaragliati tutti
    con l'idea di fare l' Id negativo con incremanto -1


    Tutto questo grazie allo spunto di Optime.
    ______Ti devo un caffe virtuale

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.