Esiste la possibiltà di creare sequence su sqlserver?
So che c'è l'autoincrement sulle tabelle, ma io avrei proprio bisogno di creare una sequence (anche senza associarla a qualche trigger)
Esiste la possibiltà di creare sequence su sqlserver?
So che c'è l'autoincrement sulle tabelle, ma io avrei proprio bisogno di creare una sequence (anche senza associarla a qualche trigger)
puoi fare una function, ma spiega meglio cosa ti serve, fa' un esempio
Ho del codice java che chiama una cosa del genere:
"SELECT SEQ_DOC.nextval FROM DUAL"
per prendere gli id da impostare in una tabella.
Dovendo ora cambiare la base di dati e andare su sqlServer vorrei cercare di cambiare meno codice possibile, percui mi va bene anche un function, purchè invocabile in quella maniera.
cosa riporta questa interrogazione
SELECT SEQ_DOC.nextval FROM DUAL
???
l'id che assumerebbe la prossima riga che sarà inserita nella tabella SEQ_DOC?
Esatto, DUAL è il nome della sequence, nextVal la chiamata per ottenere il prossimo valore ed aggiornare il progressivo.
Di norma su Oracle usiamo dei trigger che sulla insert in una tabella fanno esattamente questa cosa: vanno a prendere un valore dall'oggetto SEQUENCE e lo inseriscono nel campo id. Ovviamente ci va un trigger e una sequence per ogni tabella che usa degli incrementatori numerici come id.
Il massimo sarebbe fare qualcosa con SqlServer in modo da lascire inalterata questa Query e ottenere un valore nuovo.
Non ho idea di quanto sia fattibile..
ma hai delle sequenze particolari? perché non ti va bene l'id auto-incrementante?
Il problema è:
ho un progetto java che solitamente usiamo su db oracle, ad un certo punto abbiamo dovuto adattarlo ad un db SqlServer. Se riesco a mantenere il codice uguale, è solo una questione di differenza di librerie, e devo mantenere un solo progetto, se no, per quanto piccole le differenze son comunque due progetti diversi.
no, quella sintassi in M$SQL non è valida. cfr qui http://stackoverflow.com/questions/6...-ms-sql-server