ユーザーがテーブルにレコードを追加するときに、挿入後のページで使用されるそのレコードのIDを返したいと思います。私は現在このコマンドを使用しています(例を参照):
INSERT INTO tCRnames (fname, lname) VALUES ('Super','Man')
DECLARE @Id INT;
SET @Id = SCOPE_IDENTITY();
SELECT @Id;
この方法に関して2つの質問があります。
このコマンドはセッションに関連していますか?つまり、2人のユーザーがまったく同時にレコードを挿入した場合、返されたIDに問題が発生しますか?
挿入されたIDを返すより良い方法はありますか?現在、私のIDはすべて通常のIDフィールドですが、これで問題ありません。ただし、一部のサービスに変更を加えて、IDフィールドではないIDフィールドを残すことを検討しています。
次に、「TMP001-05」または単に「000004」などの生成されたIDを取得します。
挿入されたIDをその挿入から返すにはどうすればよいですか(生成時に返す以外に)?