【问题标题】:Try to create a table from Select - SqL Server 2008 throws error尝试从 Select 创建表 - Sql Server 2008 抛出错误
【发布时间】:2012-08-10 01:07:21
【问题描述】:

您好,我正在尝试使用内部选择语句创建表...

例如:

CREATE TABLE JmxMonSer AS (SELECT * FROM services WHERE monitoring_enabled = 1);

但是一直报错:

关键字“AS”附近的语法不正确,严重性 15

请指教

【问题讨论】:

    标签: sql-server sql-server-2008 create-table


    【解决方案1】:

    我几乎可以肯定 SQL Server 没有 CREATE TABLE AS (SELECT... 语法,但您可以使用 SELECT INTO

    SELECT * 
    INTO JmxMonSer
    FROM services 
    WHERE monitoring_enabled=1
    

    检查MSDN documentation 以了解CREATE TABLE 语句的正确用法。

    【讨论】:

      【解决方案2】:

      怎么样:

      SELECT * into JmxMonSer FROM services WHERE monitoring_enabled=1
      

      如果表已经存在(并且列类型和顺序排列),您可以使用:

      INSERT INTO JmxMonSer SELECT * FROM services WHERE monitoring_enabled=1
      

      【讨论】:

      • 太棒了,那行得通,所以我猜 sql server 的语法与 sql*.非常感谢
      【解决方案3】:

      以下语法用于使用子查询而不是使用静态表名... 因为有时所需的结果集来自不同的查询..

      SELECT * 
      INTO JmxMonSer
      From (SELECT * FROM services WHERE monitoring_enabled = 1) as X
      

      【讨论】:

        【解决方案4】:

        尝试使用SELECT INTO

        SELECT *
        INTO newtable [IN externaldb]
        FROM table1;
        

        src:http://www.w3schools.com/sql/sql_select_into.asp

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-15
          • 2019-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-01
          相关资源
          最近更新 更多