none
Error en CREATE TABLE AS SELECT RRS feed

  • Pregunta

  • Buenos días,

    Tengo la siguiente query con la que trato de crear una nueva tabla a traves de un CREATE TABLE con AS SELECT

    CREATE TABLE TABLA_SENCILLA_CON_AS_SELECT
    AS SELECT COLUMNA1,COLUMNA2,COLUMNA3,COLUMNA4
    FROM TABLA_SENCILLA_CON_CREATE_TABLE
    WHERE COLUMNA1 = 'ANGEL' AND COLUMNA2 = '80'

    El caso es que llevo un buen rato probando alternativas, y constantemente me arroja el error

    "Sintaxis incorrecta cerca de la palabra clave 'SELECT'.A la espera de ID"

    No entiendo muy bien porque sale este error y como solucionarlo, ¿alguna idea?

    Por favor, no comenteis que puedo hacer esto mismo con un SELECT INTO, soy plenamente consciente de ello, simplemente quiero saber que es lo que esta mal en esta query.

    Muchas gracias


    • Editado AngelBazan martes, 18 de septiembre de 2018 11:14
    martes, 18 de septiembre de 2018 11:02

Respuestas

  • Hola AngelBazan:

    Ese tipo de sentencia es válido en MySql

    create table `prep` (id int, nombre varchar(10), apellido varchar(10));
    insert into `prep` (id, nombre, apellido) values (1,'juan','perez');
    insert into `prep` (id, nombre, apellido) values (2,'juan','perez');
    
    create table `createSelectAS` as (select id, apellido from `prep` where id = 2);

    Y sus resultados

    Un saludo

    • Marcado como respuesta AngelBazan martes, 18 de septiembre de 2018 14:47
    martes, 18 de septiembre de 2018 13:01

Todas las respuestas

  • Hola AngelBazan:

    Si observas los documentos del asunto, no parece una construcción para transact en SQL server.

    En la doc oficial de Microsoft, create table (transact-SQL) se aplica a SQL Server desde 2008 en adelante, no aparece As Select

    En la misma, si se aplica a (Azure SQL Data WareHouse).

    Un saludo

    martes, 18 de septiembre de 2018 11:44
  • Si encuentras solución, coméntalo, que siempre esta bien aprender algo más.

    Un saludo

    martes, 18 de septiembre de 2018 11:44
  • En efecto, en doc ofical de Microsoft no encuentro nada al respecto.

    Sin embargo hay multitud de paginas donde aparece referenciado el tema de CREATE TABLE con AS SELECT, y muchos ejemplos al respecto de como realizarlos.

    https://www.w3schools.com/sql/sql_create_table.asp

    Te enlazo un ejemplo de pagina que referencia al respecto, pero hay muchos mas.

    Espero que alguno por aqui haya utilizado esta sentencia, aunque no es recomendable su uso ^^ y pueda arrojar luz al asunto aunque sea solo por curiosidad.

    Un saludo

    martes, 18 de septiembre de 2018 11:51
  • Hola AngelBazan:

    Ese tipo de sentencia es válido en MySql

    create table `prep` (id int, nombre varchar(10), apellido varchar(10));
    insert into `prep` (id, nombre, apellido) values (1,'juan','perez');
    insert into `prep` (id, nombre, apellido) values (2,'juan','perez');
    
    create table `createSelectAS` as (select id, apellido from `prep` where id = 2);

    Y sus resultados

    Un saludo

    • Marcado como respuesta AngelBazan martes, 18 de septiembre de 2018 14:47
    martes, 18 de septiembre de 2018 13:01
  • Puede ser que me haya equivocado,

    Cierto es que cuando me pongo a leer documentacion, si no es de Microsoft Docs, puede que en ocasiones este leyendo sentencias que no se pueden realizar en SQL Server y si en otros clientes de SQL.

    Y este parece ser uno de esos casos.

    Gracias por sacarme del error.

    Un saludo


    • Editado AngelBazan martes, 18 de septiembre de 2018 14:30
    martes, 18 de septiembre de 2018 14:26
  • Gracias a los errores es como todos mejoramos.

    Y yo el primero (bueno mi jefe a lo mejor no opina lo mismo)

    ;)

    martes, 18 de septiembre de 2018 14:44