Importerò molte righe di dati da un file csv in un database SQL Server (tramite un'applicazione web). Ho bisogno del valore ID generato automaticamente per il client.Esiste un modo per utilizzare SCOPE_IDENTITY se si utilizza un'istruzione di inserimento multiplo?
Se faccio questo in un ciclo, le prestazioni sono pessime (ma posso usare SCOPE_IDENTITY()
senza problemi).
Una soluzione più performante sarebbe un modo come questo:
INSERT INTO [MyTable]
VALUES ('1'), ('2'), ('3')
SELECT SCOPE_IDENTITY()
C'è un modo per ottenere tutti gli ID generati e non solo l'ultimo ID generato?
Grazie per il vostro aiuto!
Con i migliori saluti, Thorsten
No, 'SCOPE_IDENTITY()' fornisce solo il valore **, l'ultimo ** inserito 'IDENTITY'. Ma è possibile controllare la clausola 'OUTPUT' di SQL Server .... –
Commento alla risposta cancellata: Penso che dovresti rimuovere la prima riga e cambiare la terza riga in' sqlBuilder.Append ("OUTPUT INSERTED.autoid"); '. Non è necessario inserire l'output in una variabile di tabella se si desidera l'output sul codice client. –