0

主キー テーブルの 1 つのレコードが外部キーの多くのレコードに対応する 2 つのテーブル (主キー -> 外部キー) があるとします。したがって、主キー テーブルと外部キーの両方に対して (たとえば ASP.NET を使用して) 挿入ページを作成したい場合は、外部キー テーブル、主キー値を取得して外部キー テーブルに挿入するにはどうすればよいですか? (通常、私は(PKの)最大値を取りましたが、より良い解決策を見つけたいと思っています)

4

1 に答える 1

0

ASP.NETの使用について言及しているため、SQL Serverを使用していると思います。Max(PK) を使用することは、最終的に間違った主キー値を取得することになるため、マルチユーザー システムではお勧めできません。考慮すべきリソースの問題もあります。一般に、このアプローチは避けるべきです。

やりたいことを実現する方法はいくつかあります。1 つの方法は、ストアド プロシージャを介して挿入を行うことです。主キー行を作成するためのストアド プロシージャは、新しい行の Id 値を返します。これは、外部キー行の挿入に使用できます。ただし、Max(PK 値) は使用しないでください。SCOPE_IDENTITY()値を使用します。これは、PK 値に ID タイプを使用していることを前提としています。実際に何を使用しているかは述べていません。

于 2013-01-02T14:04:58.507 に答える