Zaimportuję wiele wierszy danych z pliku csv do bazy danych SQL Server (za pośrednictwem aplikacji internetowej). Potrzebuję wygenerowanej automatycznie wartości identyfikatora dla klienta.Czy istnieje sposób użycia SCOPE_IDENTITY, jeśli używana jest instrukcja wielokrotnego wstawiania?
Jeśli robię to w pętli, wydajność jest bardzo zła (ale mogę bez problemu używać SCOPE_IDENTITY()
).
bardziej wydajnych rozwiązaniem byłoby sposobem tak:
INSERT INTO [MyTable]
VALUES ('1'), ('2'), ('3')
SELECT SCOPE_IDENTITY()
Czy istnieje jakiś sposób, aby uzyskać wszystkie wygenerowane identyfikatory, a nie tylko ostatni wygenerowany id?
Dzięki za pomoc!
poważaniem, Thorsten
Nie, 'SCOPE_IDENTITY()' daje tylko ** jedną, ostatnią ** wstawioną wartość "TOŻSAMOŚCI". Ale możesz sprawdzić klauzulę "WYJŚCIA" SQL Server .... –
Komentarz do usuniętej odpowiedzi: Myślę, że powinieneś usunąć pierwszą linię i zmienić trzecią linię na 'sqlBuilder.Append (" OUTPUT INSERTED.autoid "); '. Nie ma potrzeby umieszczania danych wyjściowych w zmiennej tabeli, jeśli chcesz wyprowadzać dane wyjściowe do kodu klienta. –