Sql 选择刚插入的行

Sql 选择刚插入的行,sql,sql-server-2008,insert,Sql,Sql Server 2008,Insert,如何检索刚刚插入的行 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

如何检索刚刚插入的行

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行

提前谢谢

Stev


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

在插入记录或添加日期字段并按日期检索之前,如何将记录保存在变量中

我不是100%确定你到底想要什么。。。。但是SQL Server有一个
OUTPUT
子句,可以从
INSERT
UPDATE
DELETE
语句中输出内容:

INSERT INTO dbo.YourTable(col1, col2, ..., colN)
OUTPUT Inserted.Col1, Inserted.IDCol, Inserted.Col17
VALUES(val1, val2, ...., valN)
这里,您正在为
IDCol
(例如,一个INT标识列)、
Col1
Col17
插入值和插入值


如果只是将结果返回到Mgmt Studio中的网格就足够了,那么使用
OUTPUT
子句!如果您使用的是SQL Server,请阅读更多

你们知道插入多少行然后通过

SELECT top 2 * FROM LETTRE_VOIT order by primaryKeyId desc
将插入的行数放在
2
的位置


如果您知道插入的行数,然后您可以提供带有top关键字的数字,这可能会对您有所帮助,但问题是我不知道插入了多少行。这意味着我必须使用SQL:1。插入并返回插入的行数2。选择TOP,然后执行,@cocoy answer除非您确切知道要插入多少行(不能在TOP中使用变量),否则这将不起作用。这不是一个好主意。它在大多数情况下都可以工作,但不能保证返回的行与插入的行相同。