我将用一个例子来解释问题:
我的数据库中有两个表,分别命名为entry、tags
两个表中都有一个名为 ID_ENTRY 的列。当我将记录添加到表、条目时,我必须获取最后添加的记录的 ID_ENTRY 并将其添加到表、标签。我该怎么做?
最佳答案
执行此操作的唯一方法是使用多个语句。使用动态 sql,您可以通过用分号分隔查询字符串中的每个语句来实现此目的:
"DECLARE @ID int;INSERT INTO [Entry] (...) VALUES ...; SELECT @ID = scope_identity();INSERT INTO [TAGS] (ID_ENTRY) VALUES (@ID);"
确保将其放入事务中以防止并发问题并保持其全部原子性。如果需要,您还可以将其分成两个单独的查询,以在中间返回新的 ID 值;只需确保两个查询位于同一事务中即可。
另外:您在动态 SQL 中使用参数化查询,对吧?如果你不这样做,我会亲自过去用湿面条打你一万次,直到你悔改你的不安全行为。
关于asp.net - 如何使用 Asp.Net 从 Sql 数据库获取最后创建的条目的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/315017/