先插主表,insert into select.....
然后关联主表取id,再插明细表!
然后关联主表取id,再插明细表!
解决方案 »
- 求SQL有测试数据行转列。。
- 【触发器】第一次动手写触发器
- MSSQL 2008如何设置能够远程访问?
- =====================请高手帮忙解答,谢谢.===================
- 我想将2个不完全相同列项名的表,用一个select查询,就是将table1的流和table2的流相接
- SQL 2005中怎么用smalldatatime
- 最近日期对应问题,求指点
- sqlserver 数据备份的速度问题?
- win98下如何由ODBC连到MySql数据库?如何设DSN等?
- 斑竹请进!我不希望sql版会有这种事发生!
- SQL server 2008 R2找不到“外围应用配制器”
- 求sql语句
先主表
然后根据主表Id select into 字表
http://www.chinesejy.com/jishu/508/519/2006061781718.html
2.给主表新增一个字段,存查询数据主表的自增ID
3.插入主表 明细表数据,按照新增字段关联更新明细表的外键字段例如:
插入主表 testA(ID,NAME)
明细表 testB(ID,KEY_ID,NAME) KEY_ID为外键字段值去掉明细表外键关系查询主表数据为: select id,name from 查询主表
明细表数据为: select id,key_id,name from 查询明细给主表加一个字段,key_id 插入主表数据
insert into testA(name,key_id)
select name,id from 查询主表
插入明细表数据
insert into testB(key_id,name)
select key_id,name from 查询明细
更新明细外键数据
update testB a
set a.key_id = b.key_id
from testA b
where a.key_id = b.id and b.key_id is not null
然后删掉主表新增的字段 key_id 即可。在测试表先试试!
更新语句也错了update testB a
set a.key_id = b.id
from testA b
where a.key_id = b.key_id and b.key_id is not null
(MainID int identity(1,1),PName varchar(20)) --这个是主表create table tDetail
(DetailID int identity(1,1), MainID int,Spec varchar(200))--这个是明细表。--这个是其他的表。要从这里把数据插入主表和明细表
create table tOther(PName varchar(20),PSpec varchar(200))--先弄点数据到其他表里
insert into tOther (PName,PSpec)
select 'PN1','Pspec1' union all
select 'PN1','Pspec2' union all
select 'PN1','Pspec3' union all
select 'PN2','Pspec4' union all
select 'PN2','Pspec5' --要求查出来的数据如下