0

table1(id int,name nvarchar(50)) と table2(id int,name nvarchar(50)) の 2 つのテーブルがあります。両方のテーブルの id は主キーです。PK 値を増やして table2 から table1 に行を移動したい、つまり、すべての行をコピーするために table1 の id=max(id)+1 が必要です。

declare @root int 
select @root=max(id) from Bgd_common.dbo.table1 
insert into Bgd_common.dbo.table1(id,Name) select @root + ROW_NUMBER() OVER(ORDER BY ID),name from Bgd_common.dbo.table2

しかし、ROW_NUMBER() は Acces データベースでは機能しません。組み込みの自動インクリメント プロパティを使用したくありません。行を削除してから行を途中に挿入したいなどの理由で、組み込みの自動インクリメント プロパティによって操作が制限されるからです。 MSアクセスで同じことを行うにはどうすればよいですか??

4

3 に答える 3

1

ここにあなたの問題を解決するリンクがあります http://www.vb123.com/toolshed/07_access/countercolumn.htm

于 2013-03-28T12:15:31.260 に答える
0

table1 ID は自動採番ですか? そうであれば、単純に table2[name]を table1 にコピーするだけで、値が増加します。自動番号でない場合は、自動番号にするのが最善の場合があります。MS Access は、自動付番 ID で非常にうまく機能します。

于 2013-03-28T11:44:50.477 に答える