sql中一个表的数据插入到另一个表中sql语句怎么写?谢谢!

myl_top 2012-04-18 10:47:54
A表有ID,NAME,AGE,三列,且ID是主键且不是自动增长列
B表有NAME和AGE两列,NAME是主键
现在要把B表所有记录插入到A表中,
sqs语句怎么写?谢谢!
...全文
1034 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
myl_top 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
SQL code
A表中有数据
DECLARE @ID INT
SET @ID=1
DECLARE @COUNT INT,@acount int
SELECT @COUNT =COUNT(1) FROM B
select @acount =ISnull(MAX(id),0) from a
WHILE @ID<=@COUNT
BEGIN
INSERT INTO A SELEC……
[/Quote]谢谢高手指点
Felixzhaowenzhong 2012-04-18
  • 打赏
  • 举报
回复
A表中有数据
DECLARE @ID INT
SET @ID=1
DECLARE @COUNT INT,@acount int
SELECT @COUNT =COUNT(1) FROM B
select @acount =ISnull(MAX(id),0) from a
WHILE @ID<=@COUNT
BEGIN
INSERT INTO A SELECT @ID+@acount,NAME,Age from B
SET @ID=@ID+1
END

myl_top 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 magician547 的回复:]
若表A中已存在数据,则使用下面的语句

SQL code

INSERT INTO A
SELECT rn=ROW_NUMBER()over(order by Name) + (SELECT MAX(Id) FROM A),Name,Age
FROM B
[/Quote]谢谢
孤独加百列 2012-04-18
  • 打赏
  • 举报
回复
若表A中已存在数据,则使用下面的语句

INSERT INTO A
SELECT rn=ROW_NUMBER()over(order by Name) + (SELECT MAX(Id) FROM A),Name,Age
FROM B
myl_top 2012-04-18
  • 打赏
  • 举报
回复
3楼的可以
myl_top 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
declare @id int
set @id=select id from A
insert into A select isnull(max(@id),0),* from B
就这样的思路吧
[/Quote]关键字 'select' 附近有语法错误。
孤独加百列 2012-04-18
  • 打赏
  • 举报
回复
给你个结果

CREATE TABLE A
(
ID INT NOT NULL,
Name VARCHAR(100),
age INT
)
GO
CREATE TABLE B
(
Name VARCHAR(100),
Age INT
)
GO

INSERT INTO B
SELECT 'haha',3 UNION
SELECT 'hoho',3 UNION
SELECT 'hehe',3


INSERT INTO A
SELECT rn=ROW_NUMBER()over(order by Name),Name,Age
FROM B

SELECT * FROM A

ID Name age
1 haha 3
2 hehe 3
3 hoho 3
simonxt 2012-04-18
  • 打赏
  • 举报
回复
-- 取出最大ID
declare @maxID int
select @maxID = max(ID) from A
-- 插入数据
insert into A(ID, Name, AGE)
select ID=(row_number() over (order by Name))+@MaxID, Name, Age from B
孤独加百列 2012-04-18
  • 打赏
  • 举报
回复

INSERT INTO A
SELECT rn=ROW_NUMBER()over(order by Name),Name,Age
FROM B
wuhailin010 2012-04-18
  • 打赏
  • 举报
回复
declare @id int
set @id=select id from A
insert into A select isnull(max(@id),0),* from B
就这样的思路吧
Felixzhaowenzhong 2012-04-18
  • 打赏
  • 举报
回复

DECLARE @ID INT
SET @ID=1
DECLARE @COUNT INT
SELECT @COUNT =COUNT(1) FROM B
WHILE @ID<=@COUNT
BEGIN
INSERT INTO A SELECT @ID,NAME,Age from B
SET @ID=@ID+1
END
myl_top 2012-04-18
  • 打赏
  • 举报
回复
请高手指点一下!
孤独加百列 2012-04-18
  • 打赏
  • 举报
回复

INSERT INTO A
SELECT Name,Age
FROM B

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧