【问题标题】:Column names in each table must be unique. while copy table data from one table to another in sql server每个表中的列名必须是唯一的。在sql server中将表数据从一个表复制到另一个表
【发布时间】:2014-05-15 11:39:25
【问题描述】:

我有一张表 Transaction_tbl 包含这些列:

transactid   Tbarcode     dtime

1            100          2013-04-16 14:15:47.243
2            101          2013-05-10 10:15:47.243
3            102          2014-02-20 02:15:48.000

在此表中,transactid 是主键。

我还有一张表 KHanger_tbl 包含这些列:

transactid   Hbarcode
1             21
2             22
3             23

在我的KHanger_tbl 这个transactid is the foregin key

我想将日期范围 Transaction 表移动到另一个名为 Transaction2013.. 的表(我的意思是 2013 年的数据)

同时对应Khanger_table的数据需要移动到名为Khanger2013的表中

我正在执行查询时创建一个新表..

第一次查询

select * into Transaction2013
from Transaction_tbl
where dtime <='2013-12-30'

第二次查询

select * into Khanger2013
from KHanger_tbl 
inner join Transaction_tbl
on Transaction_tbl.transactID=KHanger_tbl.transactid
where Transaction_tbl.dtime <='2013-12-30

但是在执行第二个查询时,我得到一个错误:

每个表中的列名必须是唯一的。表“Khanger2013”​​中的列名“transactID”被指定了多次。

【问题讨论】:

    标签: sql sql-server sql-server-2008


    【解决方案1】:

    通过使用 select * 您要求所有列。由于两个表都有一个 transactionid,这将在目标表中创建两次,这是不允许的。你需要使用类似的东西:

    select k.transactid, k.Hbarcode into Khanger2013
     from KHanger_tbl k
    inner join Transaction_tbl t
    on t.transactid=k.transactid
    where t.dtime <='2013-12-30
    

    【讨论】:

    • 先生,我想将所有列从 Khanger_tbl 移动到 Khanger2013..我不想将 Transaction_tbl 数据移动到 Khange2013
    • @user3252014 然后使用select k.* 代替*
    • @user3252014 由于您的评论,我已经更正了答案
    • 从原始表中复制数据后,我想从旧表中删除相同的数据(我的意思是原始表)..先生,我该怎么做?
    • 这是另一个问题@user3252014,请为此创建一个新问题。 (或者更好的是,检查是否已经有对 SO 有帮助的答案!)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多