请教SQL语句,情况如下:

happy_0325 2004-03-26 04:48:32
表的结构如下:
表B:ID INT NOT NULL,TRANSNO CHAR(10) NOT NULL 且这两字段是主键。
表A:ID INT NOT NULL,TRANSNO CHAR(10) NOT NULL 且这两字段是主键。
两表中数据不一致。我从一个表A中取出某些数据插入到表B 中的SQL怎么写?
select id=identity(int,1,1),transno into TABLENAME from inware where transno='04OM0031'


insert B(id,transno) select ?? , A.transno from A
...全文
62 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuncai 2004-03-26
  • 打赏
  • 举报
回复
错误信息呢?
feathersea 2004-03-26
  • 打赏
  • 举报
回复
楼上的对~
progress99 2004-03-26
  • 打赏
  • 举报
回复
insert B(id,transno) select ?? , A.transno from A
直接運行可能會報錯(主鍵重復時)
zjcxc 元老 2004-03-26
  • 打赏
  • 举报
回复
--这句有什么问题吗?

insert B(id,transno) select id, A.transno from A

--如果是固定值,则用:
insert B(id,transno) select 100, A.transno from A

happy_0325 2004-03-26
  • 打赏
  • 举报
回复
不好意思我多拷了一句
insert B(id,transno) select ?? , A.transno from A
这句是我要问的。
solidpanther 2004-03-26
  • 打赏
  • 举报
回复
insert into 表B select (select max(id)+t1.id from 表b),transno from 表a t1
leeboyan 2004-03-26
  • 打赏
  • 举报
回复
insert B(transno) select transno from A
progress99 2004-03-26
  • 打赏
  • 举报
回复
因為有聯合主鍵,為了防止主鍵重復,你就這樣寫算了:
declare @int numeric(10)
select @int=max(id) from 表B
insert into 表B (ID,TRANSNO,其他字段...)
select ID+@int,TRANSNO,其他字段...
from 表A
victorycyz 2004-03-26
  • 打赏
  • 举报
回复

两表的ID字段是自增的,对吗?

insert B (transno) select transno from A
zjcxc 元老 2004-03-26
  • 打赏
  • 举报
回复
没看明白楼主的意思.
progress99 2004-03-26
  • 打赏
  • 举报
回复
select ... into ... from 是生成新的表。
happy_0325 2004-03-26
  • 打赏
  • 举报
回复
我不会写的原因是A的ID与B的ID不一致,请大家帮助!

34,591

社区成员

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

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