Çok sayıda veri satırını bir csv dosyasından bir SQL Server veritabanına (bir web uygulaması aracılığıyla) aktaracağım. İstemci için otomatik olarak üretilen id değerine ihtiyacım var.Çoklu ek ifadesi kullanılıyorsa SCOPE_IDENTITY kullanmanın bir yolu var mı?
Bunu bir döngüde yaparsam, performans çok kötüdür (ancak SCOPE_IDENTITY()
'u sorunsuz kullanabilirim).
INSERT INTO [MyTable]
VALUES ('1'), ('2'), ('3')
SELECT SCOPE_IDENTITY()
Oluşturulmuş tüm kimlikleri almak için herhangi bir yolu var mı ve sadece son oluşturulan id:
Daha performanslı bir çözüm böyle bir yolu olurdu?
Yardımlarınız için teşekkürler!
Saygılarımızla, Thorsten
Hayır, 'SCOPE_IDENTITY()' sadece ** bir, en son ** eklenen 'IDENTITY' değerini verir. Ancak, SQL Server'ın OUTPUT işlevini gözden geçirebilirsiniz .... –
Silinen yanıtınıza yorum yapın: İlk satırı kaldırmanız ve üçüncü satırı 'sqlBuilder.Append (" OUTPUT INSERTED.autoid ") olarak değiştirmelisiniz.); '. Çıktının istemci kodunuza girmesini istiyorsanız, çıktıyı bir tablo değişkenine koymanıza gerek yoktur. –