日期:2014-05-18  浏览次数:20803 次

如何使用sql语句插入主键列数据
我现在有三张表A,B,C,我要将A和B中的各一列数据组成笛卡尔积插入到C表中,而C表中有一列主键该如何获得数据?

A表:   有一字段   _a   (共100条记录)
B表:   有一字段   _b   (共100条记录)
C表:   三个字段   c_id,   _a,   _b
我要将   A   和   B   中的   _a   和   _b   笛卡尔积插入到   C   表中的   _a   和   _b   中   (那就有1万条记录了)

以下是我写的sql语句:
Insert   Into   C   (_a,_b)
(Select   _a,_b   From   (Select   Distinct   _a   from   A)
Cross   Join   (Select   Distinct   _b   from   B))

那么我C表中的主键   c_id   该如何获得值呢   (从1排到10000)?

------解决方案--------------------
将c_id字段设置成identity(1,1)就行
------解决方案--------------------

Select IDENTITY(int,1,1) as id,_a,_b
into #
From (Select Distinct _a from A)
Cross Join (Select Distinct _b from B)

Insert Into C (c_id,_a,_b)
select id,_a,_b from #

drop table #