将部分SQL Server行的一部分复制到同一数据库中

时间:2012-05-07 02:35:13

标签: sql sql-server-2008

我有一个SQL Server数据库,我想复制部分行,而行的另一部分需要填充新数据,并放入同一个表中。例如:

表名:预算

ItemID   Item   Date
1         A     4/22/2012
2         B     4/15/2012
3         C     4/24/2012

当我复制表格时,我想将item列,而不是date列复制到同一个表中。 date列将获取今天的日期,但项目将复制行。如下所示。

表名:预算

ItemID   Item   Date
1         A     4/22/2012
2         B     4/15/2012
3         C     4/24/2012
4         A     5/6/2012
5         B     5/6/2012
6         C     5/6/2012

我试过了:

SELECT Item 
INTO Budget 
FROM Budget

但我收到错误

  

数据库中已有一个名为“预算”的对象。

此外,我不确定在复制行后如何使用新的date数据填充列的其余部分。

谢谢。

2 个答案:

答案 0 :(得分:1)

您需要尝试插入。生成具有新行的查询,并尝试类似:

Insert into <table>
    Select *
    From <q>

答案 1 :(得分:1)

您正在尝试创建一个名为“Budget”的新表,该表已由“SELECT INTO”语句存在。

你的ItemID自动递增吗?试试这个。

SELECT * into Budget FROM Budget_Temp

INSERT INTO Budget(Item,Date)
SELECT Item,'5/6/2012' FROM Budget_Temp

DROP TABLE Budget_Temp