gpt4 book ai didi

SQL Server : output inserted. Id 与插入的临时用户定义表连接

转载 作者:行者123 更新时间:2023-12-04 21:05:01 27 4
gpt4 key购买 nike

我遇到了一个问题.. 我使用了一个带有用户定义表的存储过程 (@logs)。我将它插入到其他数据库表 (InOutLog),使用命令 OUTPUT into,在那里我得到 inserted id。

主要问题是我想将我的用户定义表插入到 2 个数据库表中:

  1. InOutLog,我在其中插入 id 和..
  2. 想要获取插入的 id 和其他定义的表值 (l.Title+';'+l.Comment) 并将其插入表 MessageLog

但我无法访问 l.Title+';'+l.Comment。我也找不到任何简单的解决方案来合并我的用户定义表和临时表与插入的 id 值..

代码如下:

insert into InOutLog(NFCId, UserID, DateEnter, DateLeave, ProjectId, 
Status, ServerDateEnter)
output inserted.Id, inserted.DateLeave, l.Title+';'+l.Comment, inserted.UserId
into MessageLog(TagLogId, MessageDate, Answer, UserId)
select l.NFCTagId, l.UserId, l.ScanDate, l.StartDate, @projectID, 0, getdate()
from @logs l

有什么建议吗?在这种情况下,最佳做法是什么?

最佳答案

使用 MERGE 而不是 INSERT。

这允许您在 INSERTions 的 OUTPUT 子句中访问源表。

示例:http://sqlblog.com/blogs/jamie_thomson/archive/2010/01/06/merge-and-output-the-swiss-army-knife-of-t-sql.aspx

关于SQL Server : output inserted. Id 与插入的临时用户定义表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com