id
データベースに書き込んだばかりの行から取得するにはどうすればよいですか?
基本的に、ASP.NET には 2 つのテーブルに書き込む必要がある予約フォームの機能がありますが、テーブル 1 に書き込まれた ID をテーブル 2 にも格納する必要があります。
そう:
- に書く
table 1
- から取得
id
するtable 1
- に書く
table 2
どうすればこれを達成できますか?
よろしくお茶
id
データベースに書き込んだばかりの行から取得するにはどうすればよいですか?
基本的に、ASP.NET には 2 つのテーブルに書き込む必要がある予約フォームの機能がありますが、テーブル 1 に書き込まれた ID をテーブル 2 にも格納する必要があります。
そう:
table 1
id
するtable 1
table 2
どうすればこれを達成できますか?
よろしくお茶
SQL Serverを使用している場合SCOPE_IDENTITY()
http://msdn.microsoft.com/en-us/library/ms190315.aspx
INSERT INTO Table1 ...
DECLARE @RecordID int = SCOPE_IDENTITY()
INSERT INTO Table2 ... VALUES (@RecordID....)
SELECT
ストアド プロシージャを使用せずに、SQL の末尾にステートメントを追加できます。
cmd.CommandText = "INSERT INTO Table 1 ...... ; SELECT SCOPE_IDENTITY()"
int recordId = (int)cmd.ExecuteScalar();
Asp.Net と Sql 2008 サーバーでは、次のようにExecuteScalar関数を使用できます。
string query = "INSERT INTO Table1 (id_field)
OUTPUT SCOPE_IDENTITY()
VALUES (...)";
また
string query = "INSERT INTO Table1 (...) VALUES (...); SELECT SCOPE_IDENTITY() ";
最後の例では、同じリクエストで INSERT を実行してから SELECT を実行していることに注意してください...
ID を取得するには、次を使用します。
int lastId = (int)command.ExecuteScalar();