2013-03-28 82 views
0

我們有兩個表table1(id int,name nvarchar(50))和table2(id int,name nvarchar(50))。對於這兩個表id是主鍵。我想要將行從table2移動到table1與PK值遞增,即我想id = max(id)+1的table1所有行復制。我發現這樣的查詢是這樣的sql服務器在MS Access數據庫中使用PK列值遞增將一個表中的行插入另一個表中

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()不會與艾策斯database.I工作,不希望使用內置的自動遞增的財產,因爲我想刪除一行,然後在中間插入等一行,並內置自動遞增屬性將導致一些操作限制。我如何在MS訪問中做同樣的事情?

回答

0

我用DCOUNT到位行號()和它的工作的鏈接! 這裏是最終的查詢

insert into Bgd_common.dbo.table1(id,Name) select (select max(id) from Bgd_common.dbo.table1) + Dcount("id","test2","id <= " & [id]) ,name from Bgd_common.dbo.table2 
0

table1 ID是自動編號嗎?如果是這樣,您可以簡單地將table2 [name]複製到table1,並且值將遞增。如果它不是自動編號,最好將它製作成一個。 MS Access可以很好地處理自動編號ID。

+0

我不希望使用內置的自動編號屬性,因爲它會導致操作上的一些限制 – 2013-03-30 05:23:36

相關問題