2012-01-03 87 views
0

我试图从另一个表中更新一个表,即使客户记录存在,我也能够更新,但有一些条目不存在。SQL插入/更新问题

为了解决这个我试过运行以下插入

SELECT * 
INTO SalBudgetCust 
FROM SalBudgetCust_temp 
WHERE NOT EXISTS (
    SELECT Customer 
    FROM SalBudgetCust 
    WHERE Customer = SalBudgetCust_temp.Customer 
) 

但即时提示

There is already an object named 'SalBudgetCust' in the database. 

林停留在这一点上......任何人都可以提供一个小guideance?

回答

5

SELECT INTO隐式创建表名。您应该改用INSERT INTO ... SELECT * FROM ...,以便使用现有的表格。

0

应该INSERT INTO代替SELECT * INTO ...像

INSERT INTO SalBudgetCust SELECT * FROM SalBudgetCust_temp 
WHERE NOT EXISTS 
(
SELECT Customer FROM SalBudgetCust WHERE Customer = SalBudgetCust_temp.Customer 
) 
+0

我刚刚尝试过,返回错误语法错误关键字'FROM'附近。我确认表名是完全正确的。 – lewiscooksey 2012-01-03 15:17:33

+0

对不起......小错。编辑...现在尝试。 – Rahul 2012-01-03 15:21:16

0

一般语法插入一个表的数据到另一个是:

INSERT INTO new_table 
SELECT * FROM old_table 
WHERE some_condition; 

其中,NEW_TABLE是表,你想要插入数据,old_table是从哪里获取数据的表,some_condition是您想要从旧表中获取数据的表达式/条件。

您可以使用其他子句,如order by,group by,甚至在where子句之后的子查询。

可能指这SQL INSERT INTO和它的后续页面。