2011-12-01 3 views
9

ちょうど挿入された行を取得する方法はありますか?例えば挿入したばかりの行を選択

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つの代わりに5行を返すしたい、3を挿入しました。

ありがとうございます。

STEV

PS:私は、ストアドプロシージャを使用する必要があることができますか?

+2

たRDBMSトップキーワードと数字を提供することができますか? ..... –

+0

SQL Server 2008 – user609511

答えて

16

私はあなたが戻って欲しい、まさに100%わからないんだけど....しかし、SQL ServerがINSERTUPDATEDELETE文からOUTPUT句を出力することができるものがあります:「、あなた

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

IDCol(INT IDENTITY列など)、Col1およびCol17の値と挿入された値を再挿入します。

Mgmt Studioで結果をグリッドに戻すだけで十分なら、OUTPUT節を使用してください!続きを読むabout the OUTPUT clause on Books Online

+1

ありがとうございましたexacly私が欲しいです。 – user609511

2

レコードを挿入する前に変数を保存するか、日付フィールドを追加して日付で取得するのはどうでしょうか?

+0

私はそれについて考えるでしょう – user609511

0

は、SQL Server

を使用していて、

SELECT top 2 * FROM LETTRE_VOIT order by primaryKeyId desc 

2の場所に挿入された行の数を入れて行き、その後挿入どのように多くの行を知っている場合。

あなたが挿入された行の数を知っていればそれは、あなたを助けることができ、その後、あなたは

+0

悪くないidee、問題は、私はどのくらいの行が挿入されているかわからない。それは私がSQLに作ることを意味する:1.挿入し、挿入された行の数を返す2. SELECT TOP – user609511

+0

その後、@ココナッツ答え – subodh

+0

これは、 TOPに変数を使用する)。 – rainabba

関連する問題