【问题标题】:drop table and insert records from a new select statement (with the correct records)从新的选择语句中删除表并插入记录(使用正确的记录)
【发布时间】:2014-07-23 14:14:53
【问题描述】:

我想从一个选择语句中删除一个现有表并插入新记录。保持柱子相同。旧表(a 列、b 列)和 select 语句(从 a、b、c、d 中选择并带有内部连接)

【问题讨论】:

  • 那么,您想保留要删除的表中的记录,然后创建一个包含其他字段的新表吗?是这样吗?
  • 我希望完全删除表并从 select 语句中插入新记录,或者从 select 语句中添加记录而不删除表。我可以在 select 语句中添加 where 子句,以较快者为准)
  • SELECT a.me ,b.you ,c.them ,c.us FROM A INNER JOIN TABLE b ON a.1 = b.1 collat​​e Latin1_General_CI_AI INNER JOIN Table c ON b.1 = c .1 where date between '2014-07-21 09:00:00.000' and '2014-07-23 09:00:00.000') 我想使用将 a 和 b 添加到新表或删除表并插入所有a 和 b 结果没有 where 子句

标签: sql sql-server-2008


【解决方案1】:

如果你需要完全放弃,你可以这样做:

   Drop table yourtable

   SELECT *
   INTO yourtable
   FROM 
   (SELECT a  ,  b FROM blah, blah) x

【讨论】:

    【解决方案2】:

    除非您想更改旧表的架构,否则您可以尝试TRUNCATE TABLE

    TRUNCATE TABLE MyTable
    

    然后你可以用 SELECT 插入到这个表中:

    INSERT INTO MyTable
    (
        ColumnA,
        ColumnB,
        ...
    )
    SELECT
        ValueA,
        ValueB,
        ...
    FROM 
        Table1
    INNER JOIN Table2
        ON Table2.SomeColumn = Table1.SomeColumn
    ...
    

    另一方面,如果你真的想重新创建表,那么你可以DROP TABLE 并使用 SELECT INTO 重新创建它,正如 Jayvee 所示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多