1

Login と Customer の 2 つのテーブルを含む基本的なデータベースをリンクしました。

  • Login( CustomerIDloginIDpassword)を含む
  • Customer( CustomerIDnamelastdob)を含む

CustomerIDは両方のフィールドの主キーであり、Login テーブルの自動インクリメント値です。

新しいユーザーを登録したいとき、最初にログインテーブルにデータを入力したい(CustomerID自動インクリメント値として持っている)

テーブルに入力Loginするときに使用できるように、次の自動インクリメント値を取得するにはどうすればよいですか?Customer

SQL Server 12 を使用しています。

4

5 に答える 5

1

ストアド プロシージャを使用してこのロジックを処理しているScope_Identity場合は、新しく挿入されたレコードから値を取得し、この値を使用して次のテーブルに挿入することで、1 つのトランザクションでこれを行うことができます。

Scope_Identity間違いなくここに行く方法であり、SP への呼び出しの範囲内で最新の ID を取得します。

これが Entity Framework を介した 2 段階のプロセスである場合は、Entity Framework を使用して挿入されたエンティティの ID を取得するにはどうすればよいですか? をご覧ください。

于 2013-09-13T08:57:49.847 に答える
0

GuidC# コードでa を使用し、それを CustomerID ( Guid custID = new Guid();) として設定できます。 Guids はuniqueidentifierSQL Server の型です。

Entity Framework を使用していますか? これは、.NET アプリケーションから SQL データベースにアクセスする優れた方法です。

于 2013-09-13T08:40:16.607 に答える
0

SQL クエリを使用している場合:

inertIntoLoginTable 関数がSCOPE_IDENTITY または@@Identityである整数を返すようにします

Entity Framework のような ORM を使用している場合、id はデータベースへの挿入後にオブジェクトに設定されます。

Login.loginIDあなたが呼び出した後に挿入された最後のIDになりますdbContext.SaveChanges();

于 2013-09-13T08:47:01.427 に答える
0

次の SQL ステートメントを試してください。

SHOW TABLE STATUS LIKE 'Login_Table'

Auto_incrementの値またはその他の詳細を探す

于 2013-09-13T08:37:02.277 に答える
0
select isnull(MAX(CustomerID),0)+1 from Customer
于 2013-09-13T08:35:49.460 に答える