SQL Serverは挿入された行の順序を追跡しないため、現在のテーブル構造でその情報を取得する信頼できる方法はありません。employee_id
が列であってもIDENTITY
、挿入の順序を100%確実に信頼できるわけではありません(ギャップを埋めたり、を使用して重複するID値を作成したりできるためSET IDENTITY_INSERT ON
)。employee_id
がIDENTITY
列であり、行が手動で順不同に挿入されていないことが確実な場合は、クエリのこのバリエーションを使用して、最新のデータを順番に選択できるはずです。
SELECT
ROW_NUMBER() OVER (ORDER BY EMPLOYEE_ID DESC) AS ID,
EMPLOYEE_ID,
EMPLOYEE_NAME
FROM dbo.CSBCA1_5_FPCIC_2012_EES207201222743
ORDER BY ID;
テーブルに変更を加えて新しい行のこの情報を追跡することはできますが、既存のデータからこの情報を取得することはできません(この変更を行うと、すべての情報が挿入済みとしてマークされます)。
ALTER TABLE dbo.CSBCA1_5_FPCIC_2012_EES207201222743
-- wow, who named this?
ADD CreatedDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
これにより、既存のコードが破損する可能性があることに注意してくださいINSERT INTO dbo.whatever SELECT/VALUES()
。たとえば、コードを再検討して、適切で明示的な列リストを定義する必要がある場合があります。