首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql插入数据有关问题

2012-06-13 
sql插入数据问题有两张表,表A和表B,可以理解为:表A主表,表B附表向 表A 插入一条数据,取出自增长@@IDENTITY

sql插入数据问题
有两张表,表A和表B,可以理解为:表A主表,表B附表
向 表A 插入一条数据,取出自增长@@IDENTITY,和其他一些信息,插入 表B。
目前需要向 表A 插入 很多数据,不要用循环,有什么好的方法?

[解决办法]

SQL code
gocreate trigger test on Afor insertasinert B(col1,col2,....)select col1,col2,....from inserted--触发器吧
[解决办法]
插入前找出表A最大的自增号,插入后将所有大于这个自增号的记录连同其他数据插入表B。
比如表A自增字段为ID,那么:
declare @a int
select @a=max(id) from 表A

insert into 表A values ()... --插入表A记录

insert into 表B
select * from 表A 
where id>@a --将表A所有ID大于@a的记录插入表B
[解决办法]
SQL code
--有两张表,表A和表B,可以理解为:表A主表,表B附表--向 表A 插入一条数据,取出自增长@@IDENTITY,和其他一些信息,插入 表B。--目前需要向 表A 插入 很多数据,不要用循环,有什么好的方法?DECLARE @MID INT,@IDENT INTSELECT @MID=MAX(ID) FROM tbAINSERT INTO tbA(...)    SELECT ... UNION ALL    SELECT ... UNION ALL    ...SET @IDENT=SCOPE_IDENTITY()INSERT INTO tbB(...)    SELECT ... FROM tbA    WHERE ID BETWEEN @MID+1 AND @IDENT 

热点排行