我想把sql查询的结果放到一个表中但是如果我做SELECT列名INTO NEWTABLE(它没有创建),它有一次好,但是当我再次运行那个查询时,它表示表已经存在。我正在做的就是从查询到newtable的结果,我将每周运行它所以它不应该给我错误:表已经存在。
例如:我想将以下查询结果放入Newtable EmployeeDetails中,我将每周运行它。
select a.Name, b.Id
from Database1 a left join
Database2 b
ON a.Id = b.Id
答案 0 :(得分:3)
请改用INSERT INTO。
但请确保在第一次调用insert之前已经创建了表,
INSERT INTO table1 (column1, column2, ...)
SELECT column3, column4, ...
FROM table2
答案 1 :(得分:2)
使用IF EXISTS检查
sql server的例子
IF EXISTS (SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[YOurTableName]')
AND type in (N'U'))
BEGIN
DROP TABLE [dbo].[YOurTableName
END
select * into [dbo].[YOurTableName]
from ......
答案 2 :(得分:2)
IF EXISTS (SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[YOurTableName]') AND type in (N'U'))
//INSERT INTO STATEMENT
ELSE
//SELECT INTO STATEMENT THAT U ALREADY HAVE
答案 3 :(得分:0)
使用插入 - 插入newtbl从tbl中选择x,y,z
(确保先创建表格)
答案 4 :(得分:0)
如果在当前SQL连接的持续时间内只需要生成的表,请创建一个临时表:
CREATE TEMPORARY TABLE newtable SELECT the_rest_of_your_query
或者,如果你想让桌子保持一周,但每周都要完全更换,请确保它先消失:
DROP TABLE IF EXISTS newtable