我具有以下表格结构,为方便起见,我仅标记单个列
Table_A
(Id, Name, Desc
)Table_1
(Id
这是标识列 ,Name
..)Table_2
(Id
这是标识列 ,Table_A_Id
,Table_1_Id
)Table_1和Table_2之间的关系是 1...*
现在,我创建了一个Table_A
名为的表类型TType_Table_A
(仅包含Id
为列,并且从我的C#应用程序中发送了多个记录)。我已经实现了所需的批量插入功能。
我需要的是,当我记录插入Table_2
来自TType_Table_A
发言权下面的语句,我想捕捉Id
的Table_2
用于插入的每个记录
declare @count int = (select count(*) from @TType_Table_A); --a variable declared for TType_Table_A
if(@count > 0)
begin
insert into Table_2(Table_A_Id,Table_1_Id)
SELECT @SomeValue, @SomeValueAsParameter FROM @TType_Table_A;
end;
现在说如果插入了2条记录,我想捕获Id
这2条记录中的每条记录。
任何输入/帮助表示赞赏
这就是我知道如何实现的方法,但是我想减少存储过程中应用程序或用户游标的数据库调用
在表_1中插入记录,并通过记录返回Id循环.....在表_2中插入记录,并返回Id
或者
从TableType插入/选择时在存储过程中使用游标
我假设这是Sql Server?然后,您可以使用OUTPUT子句,如下所示:
declare @NewId table (MyNewId INT)
insert into Table_2(Table_A_Id,Table_1_Id)
output INSERTED.MyNewId INTO @TempTable(MyNewID)
SELECT SomeValue, SomeValueAsParameter FROM @TType_Table_A;
SELECT * FROM @NewId
我正在向CouchBase批量插入数据,几分钟后出现了这个异常: 我做错什么了吗?
我收到以下异常- org.hibernate.exception.sqlgrammarexception:无法插入:[Employee] 以下是详细信息: hibernate.cfg.xml employee.hbm.xml 请帮助解决异常。提前道谢!
我正在写一个数据挖掘程序,可以批量插入用户数据。 当前SQL只是一个普通的批量插入: 如果发生冲突,如何进行更新?我试过: 但它抛出
问题内容: 一直试图获取SCOPE_IDENTITY()(最后一个插入到DB中的ID)并将其作为变量存储在我的PHP函数中。 这是我目前拥有的: 我做错了什么? 编辑: 另外…在构造中,我试图在$ this-> post中传递ID($ this-> Id),但它返回0。我可以看到这是由于我只设置了$查询通过后this-> Id,因此返回0,但我不确定如何继续。有什么建议? 问题答案: 首先,您的问
问题内容: 我使用以下查询将多个记录插入到表中: 由于查询要插入多个记录,因此无法使用 SCOPE_IDENTITY 来检索PK。有什么方法可以获取最近插入记录的ID? 问题答案: SCOPE_IDENTITY()将正确为您提供LAST ID。您需要将其与@@ Rowcount结合使用,以提供ID范围。 正如其他Richard指出的那样 ,这仅在您将增量设置为1时有效 例如: 执行此操作的另一种方
所以我只使用Jooq来构建查询,而不是执行查询,如下所示: 对象可以执行查询conn.asyncExecute(org.jooq.query query)。所以我的问题是,如何创建类型为org.jooq的批插入查询。查询?具体来说,给定一个列表 请注意,我知道其他问题询问如何使用Jooq进行批处理插入,但他们使用Jooq执行查询就像下面Jose Martinez的回答一样,而这里我只使用Jooq构