Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Generar Metadatos a partir de una consulta SQL. (https://www.clubdelphi.com/foros/showthread.php?t=85582)

Neeruu 03-04-2014 17:30:55

Generar Metadatos a partir de una consulta SQL.
 
Hola a todos...

Tengo una consulta, necesito generar o extraer, a partir de una consulta SQL, los metadatos para poder generar una tabla nueva.

Me explico mejor, tengo la siguiente consulta:

Código SQL [-]
SELECT T1.CAMPO1, 
           T1.CAMPO2,
           T2.CAMPO3
FROM TABLA1 T1
JOIN TABLA2 T2
ON (T1.CAMPO1 = T2.CAMPO1)

Los resultados de esta consulta tienen que ser volcados a una nueva tabla, el tema que tengo muchas consultas y cada consulta tiene muchos campos... por lo que tengo que ir viendo cada campo de la consulta, de que tabla salen, ir a la tabla y ver de que tipo son, etc...

Yo lo que necesitaría es poder decirle que me cree la tabla para poder volcar los datos, según la consulta...

O sea, si "T1.CAMPO1" es del tipo varchar(50) que me cree en la tabla nueva el campo "CAMPO1" que sea varchar(50)...

Espero que se entienda...


Estoy trabajando con SQL Server...

Saluda Atte Neerruu!!!:)

QuiqueSalamanca 03-04-2014 18:13:11

Prueba con esta consulta:

Código SQL [-]
SELECT column_name, 
       data_type, 
       column_default, 
       is_nullable
FROM information_schema.columns 
  WHERE table_name='Nombre de la tabla'

;)

QuiqueSalamanca 03-04-2014 18:42:32

Perdón me faltaba un campo importante para ti

Código SQL [-]
SELECT column_name, 
       data_type,
       character_maximum_length,
       column_default, 
       is_nullable
FROM information_schema.columns 
  WHERE table_name='Nombre de la tabla'

Sorry! jaja

Saludos, Quique.

Neeruu 03-04-2014 20:52:36

Es que la consulta no es de 1 tabla, es de 3 o 4 tablas en 1 sola consulta, con select anidados, case, from con select, etc... son consultas complejas...

mamcx 03-04-2014 21:39:08

Es posible crear la tabla directamente usando un SELECT:

http://stackoverflow.com/questions/1...ql-server-2008

olbeup 04-04-2014 08:33:35

Cita:

Empezado por Neeruu (Mensaje 474768)
Hola a todos...

Tengo una consulta, necesito generar o extraer, a partir de una consulta SQL, los metadatos para poder generar una tabla nueva.

Me explico mejor, tengo la siguiente consulta:

Código SQL [-]
SELECT T1.CAMPO1, 
           T1.CAMPO2,
           T2.CAMPO3
FROM TABLA1 T1
JOIN TABLA2 T2
ON (T1.CAMPO1 = T2.CAMPO1)

Los resultados de esta consulta tienen que ser volcados a una nueva tabla, el tema que tengo muchas consultas y cada consulta tiene muchos campos... por lo que tengo que ir viendo cada campo de la consulta, de que tabla salen, ir a la tabla y ver de que tipo son, etc...

Yo lo que necesitaría es poder decirle que me cree la tabla para poder volcar los datos, según la consulta...

O sea, si "T1.CAMPO1" es del tipo varchar(50) que me cree en la tabla nueva el campo "CAMPO1" que sea varchar(50)...

Espero que se entienda...


Estoy trabajando con SQL Server...

Saluda Atte Neerruu!!!:)

Hola Neeruu,

Cita:

Yo lo que necesitaría es poder decirle que me cree la tabla para poder volcar los datos
Esto es sencillo, lo único que tienes que hacer es ponerle INTO Tabla?, después del ultimo campo:

Código SQL [-]
SELECT
    T1.CAMPO1
    ,T1.CAMPO2
    ,T2.CAMPO3
  INTO TABLA3
  FROM TABLA1 T1
    JOIN TABLA2 T2
      ON T1.CAMPO1 = T2.CAMPO1
Después sólo tienes que consultar la TABLA3.
Código SQL [-]
SELECT
    CAMPO1
    ,CAMPO2
    ,CAMPO3
  FROM TABLA3
Un saludo.

upps, no había visto el enlace de mamcx

Neeruu 05-04-2014 02:11:28

Aunque la tabla 3 no exista en la base de datos...??? me la crea automáticamente?

olbeup 07-04-2014 08:46:07

Cita:

Empezado por Neeruu (Mensaje 474825)
Aunque la tabla 3 no exista en la base de datos...??? me la crea automáticamente?

Hola Neeruu,

En el INTO de la SELECT ya le estas diciendo que los resultados te la cree en la TABLA3, con la misma estructura (CAMPOS) de la TABLA1 y la TABLA2 a la TABLA3

Has llegado a probarlo?

Un saludo.

Neeruu 07-04-2014 14:45:17

No lo probé todavía... pero en breve estaré dando el visto....

Esto con Firebird también se puede hacer?

Saluda Atte Neeruu!!!:)

olbeup 08-04-2014 08:13:33

Cita:

Empezado por Neeruu (Mensaje 474884)
No lo probé todavía... pero en breve estaré dando el visto....

Esto con Firebird también se puede hacer?

Saluda Atte Neeruu!!!:)

Hola Neeruu,

Cita:

Esto con Firebird también se puede hacer?
Se puede hacer con cualquier motor de base de datos.

Un saludo

Neeruu 09-04-2014 01:02:00

Doy Fe que anda.... jajaja...

Muchas gracias por la ayuda, he aprendido algo nuevo gracias a ustedes....


Saluda Atte Neeruu!!!:)


La franja horaria es GMT +2. Ahora son las 19:56:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi