【问题标题】:How do i save my query results in a table in my existing database folder in sql server? [duplicate]如何将查询结果保存在 sql server 中现有数据库文件夹中的表中? [复制]
【发布时间】:2021-05-31 10:54:35
【问题描述】:

我的查询结果在 3+ 百万行项目中运行。如何直接将查询保存为表? 我尝试将结果保存在 .csv 中,然后导入该 .csv 文件,但它只导入前一百万行而不是完整数据。

【问题讨论】:

  • “将查询另存为表格”是什么意思?就像创建一个包含数据的表一样?您是否考虑过使用INTO 子句?
  • @Larnu 我的意思是我希望将结果保存为databaseX>Tables中的dbo.results
  • 成功了。我对 SQL 很陌生,如果这太愚蠢了,我深表歉意。谢谢@Larnu

标签: sql-server


【解决方案1】:

如果您想在运行时将查询结果保存在数据库的另一个表中,请使用“Select into Clause”

假设您的查询包含 300 万条以上记录

Select * from employees

如果您希望在运行时将上述查询的结果插入到数据库中的另一个表中,例如employee_new,然后如下修改上述查询。

Select * 
Into employee_new
from employees

以这种方式创建的表employee_new 将具有与您的select 语句中相同的列名。但是,您将无法控制 employee_new 表的列数据类型。

如果您希望您的列具有特定的数据类型,请事先创建一个表并像这样使用“INSERT INTO ...SELECT”语句。 (我假设您正在从您的选择查询中生成 3 列,每个 int、varchar、datetime 类型之一)

Create Table employee_new (col1 int, col2 varchar(10), col3 datetime)

Insert into employee_new (Col1, col2, col3)
Select * from employees

【讨论】:

    【解决方案2】:

    您可以使用 SELECT INTO 语法将查询结果保存为新表。

    SELECT *
    INTO newtable
    FROM oldtable
    WHERE condition 
    

    【讨论】:

    • SQL Server 不支持ININTO 中定义数据库;如果要在不同的数据库中创建表,则需要使用 3 部分命名。
    • @Larnu 你是对的,我从答案中删除了它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多