【发布时间】:2012-11-04 04:09:49
【问题描述】:
我会将许多数据行从 csv 文件导入 SQL Server 数据库(通过 Web 应用程序)。我需要为客户端返回自动生成的 id 值。
如果我循环执行此操作,性能会很差(但我可以毫无问题地使用SCOPE_IDENTITY())。
更高效的解决方案是这样的:
INSERT INTO [MyTable]
VALUES ('1'), ('2'), ('3')
SELECT SCOPE_IDENTITY()
有什么方法可以获取所有生成的 ID,而不仅仅是最后生成的 id?
感谢您的帮助!
最好的问候, 托尔斯滕
【问题讨论】:
-
不,
SCOPE_IDENTITY()只会为您提供 最新的 插入的IDENTITY值。但是您可以查看 SQL Server 的OUTPUT子句 .... -
评论您已删除的答案:我认为您应该删除第一行并将第三行更改为
sqlBuilder.Append("OUTPUT INSERTED.autoid ");。如果您希望输出到客户端代码,则无需将输出放入表变量中。
标签: c# .net sql spring.net scope-identity