2014-09-04 83 views
0

我已经在那里我已经在数据库中改变了一些值的临时表,我试图nsert这些回真正的表,但它不工作我有这个如下:插入内容到真正的表

SELECT * INTO dbo.PackageProduct FROM #PackageP 

其中#PackageP是我的临时表

我第二次运行后收到此错误:

There is already an object named 'PackageProduct' in the database. 
+0

[INSERT INTO vs SELECT INTO](http://stackoverflow.com/questions/6947983/insert-into-vs-select-into) – bummi 2014-09-04 15:12:27

回答

4

如果该表已经存在,你必须使用INSERTSELECT...INTO创建一个新表:

INSERT dbo.PackageProduct (<columns...>) 
SELECT (<columns...>) FROM #PackageP 
1

TRY

INSERT INTO dbo.PackageProduct SELECT * FROM #PackageP 
+2

如果你添加了一些解释,对每个人都是有益的。 – Huangism 2014-09-04 15:36:05

0

假设你有两个表中列的相同数量和顺序试试这个:

INSERT INTO dbo.PackageProduct 
SELECT * 
FROM #PackageP 
0

如果您做select * into ...它会创建一个表,如果同名已经存在,那么它会显示错误,并且错误清楚地表明数据库中已经有一个对象(table/view/proc ...)。使用其他名称检查或检查现有对象是否不需要,然后删除它,然后使用您的查询或将其插入表中(如果您的临时表和现有对象结构都相同并且它是表)。