当前位置: 首页 > 面试题库 >

选择刚插入的行

聂迪
2023-03-14
问题内容

如何检索刚插入的行?

INSERT INTO LETTRE_VOIT
select rsVoit.NOID, NO_ORDRE, rsOrdre.CODE_DEST, rsOrdre.MODAL_MODE, rsOrdre.MODAL_PORT,
CASE rsOrdre.MODAL_PORT
            WHEN 'false' THEN 'D'
            ELSE 'P'
        END, 
rsOrdre.LIVRS_EXPRS,
CASE rsOrdre.LIVRS_EXPRS
            WHEN 'false' THEN 'L'
            ELSE 'E'
        END, 
  rsOrdre.ENLEV_UNITE, LIBELLE, NBR_COLIS,POID,ENLEV_CREMB,ENLEV_DECL
from ORDRE rsOrdre
inner join
(
  select CODE_DEST,MODAL_MODE, MODAL_PORT, LIVRS_EXPRS,ENLEV_UNITE, ROW_NUMBER() over (order by CODE_DEST) as NOID
  from ORDRE
  group by CODE_DEST,MODAL_MODE,MODAL_PORT,LIVRS_EXPRS,ENLEV_UNITE
) rsVoit on rsVoit.CODE_DEST = rsOrdre.CODE_DEST and rsVoit.MODAL_MODE = rsOrdre.MODAL_MODE
and rsVoit.MODAL_PORT = rsOrdre.MODAL_PORT and rsVoit.LIVRS_EXPRS = rsOrdre.LIVRS_EXPRS
and rsVoit.ENLEV_UNITE = rsOrdre.ENLEV_UNITE

LEFT JOIN T_UNITE ON rsOrdre.ENLEV_UNITE = T_UNITE.NOID
WHERE (STATUT_ORDRE = 3) AND IS_PRINT = 'false' AND (TRANSPORTEUR IN (SELECT ParsedString From dbo.ParseStringList(@Trans)))
order by rsVoit.NOID, NO_ORDRE

SELECT * FROM LETTRE_VOIT WHERE ???

例如:

我插入了2,返回了2

然后插入3,我想返回3而不是5行。

提前致谢。

史蒂夫

PS:可能需要使用存储过程吗?


问题答案:

我不是100%不确定您到底想要什么…。但是SQL
Server有一个OUTPUT子句可以从INSERTandUPDATEDELETEstatement中输出内容:

INSERT INTO dbo.YourTable(col1, col2, ..., colN)
OUTPUT Inserted.Col1, Inserted.IDCol, Inserted.Col17
VALUES(val1, val2, ...., valN)

在这里,您正在插入值和的插入值IDCol(例如INT IDENTITY列)Col1Col17

如果仅将结果返回到Mgmt Studio中的网格就足够了-
那么请使用该OUTPUT子句!在在线图书上阅读有关该条款的更多信息OUTPUT



 类似资料:
  • 问题内容: 我正在使用Python和psycopg2连接到Postgres。 当我插入一行时… …如何获取刚刚插入的行的ID?试: 使用时返回错误: 简单地返回。 更新:也是(即使直接在postgres中使用此命令也可以): 有人可以建议吗? 谢谢! 问题答案: 并且,请不要手动构建包含值的SQL字符串。您可以(并且应该!)单独传递值,从而不必进行转义和SQL注入: 有关更多详细信息,请参见psy

  • 问题内容: 我想知道是否可以运行这样的请求: 这个想法是用t1的一些数据填充t2,但是我在语法上一定是错误的。 谢谢你的帮助 问题答案: 从语句插入时不使用关键字。

  • 就像有人说的第二种方式更慢,但我不确定,那么哪种方式更好呢?不能使数据库崩溃。

  • 问题内容: 有没有办法插入预设值和我从选择查询中获得的值?例如: 我有“字符串”的值和数字5,但是我必须从这样的选择中找到[int]值: 那给我那个ID放在table1里面。 如何将其合并为一个语句? 问题答案: 使用查询,并将已知值放入:

  • 主要内容:Oracle INSERT INTO SELECT语句概述,Oracle INSERT INTO SELECT示例在本教程中,您将学习如何使用Oracle 语句将数据从语句的结果中插入到表中。 Oracle INSERT INTO SELECT语句概述 有时候,想要将从其它表中选择数据并将其插入到另一个表中。要做到这一点,可使用Oracle 语句,如下所示: Oracle 语句要求源表和目标表匹配数据类型。 Oracle INSERT INTO SELECT示例 1. 插入所有销售数据

  • 问题内容: 我是Firebird的新手,我遇到了很多问题。我想在从另一个表中选择的表中插入各种行。 这是代码: ID应该从66开始自动递增。posid应该从1开始自动递增。 实际上,它没有插入任何内容。 我正在使用Firebird Maestro,并且刚刚打开了SQL脚本编辑器(在执行脚本时不会抛出任何错误消息)。 有谁能够帮我? 谢谢! 附加信息: 触发器应自动增加“ ID”列-但我不知道如何精