Tengo un problema con mi situación actual, busqué a través de cualquier solución en la red pero todavía no puedo conseguirlo.SQL Server: creación de la tabla de temperatura con la columna dinámica
Aquí la pregunta:
Tengo un montón de sentencias SQL que necesitan ser ejecutados en un procedimiento almacenado mediante cursor dentro, cada uno de los estados está realizando una inserción mediante la selección de una base de datos diferente, así como mesa.
Por ejemplo:
INSERT INTO Database1.Table1(column1, column2, column3)
SELECT column1,column2, column3
FROM Database2.Table2
WHERE --Some Condition
y tal vez otra sentencia SQL ejecutada es así
INSERT INTO Database1.Table3(column1, column2, column3, column4)
SELECT column1, column2, column3, column4
FROM Database3.Table3
WHERE --Some Condition
bien, básicamente, mi proceso es como esto
Execute Sql to insert into temp Tables --> Insert into a permanent Table from Temp Tables
Desde arriba dos sentencias SQL , mi resultado ejecutado desde database2 o 3 o puede ser 4,5 y etc. Iré a mi base de datos1 f o tienda permanente. En una forma más resumida de decir que es así, solo quiero hacer otra copia de los datos que provienen de diferentes fuentes de bases de datos y almacenarlas en mi base de datos local para hacer un procesamiento adicional.
Mi problema principal es que mi persona a cargo (o gerente) me dijo que insertara todos los resultados ejecutados en una tabla TEMP o #Table
antes de ejecutar en el permanente.
Algo como esto:
INSERT INTO #Table3(column1, column2, column3, column4)
SELECT column1, column2, column3, column4
FROM Database3.Table3
WHERE --Some Condition
me pasó por algunas investigaciones sobre #Temp
mesas y me pareció que la mayoría de ellos es la creación de la columna de 'fijar' tales como
CREATE TABLE #Table
(
column1 VARCHAR(10),
column2 VARCHAR(10),
column3 VARCHAR(10)
)
PROBLEMA: ¿hay de todos modos para crearlo con columnas dinámicas? Más detalle de la forma de preguntar, ¿hay alguna forma de insertar seleccionando en una tabla #Temp
sin prefijo la columna? Porque eso es imposible para mí crear un grupo de tablas temporales para cada SQL ejecutado.
Gracias
PS 1: Soy bastante novato en SQL Server, por favor no dude en expresar mi error o error. Todos aprendemos de los errores.
PD 2: Perdón por mi pobre nivel de inglés, hice todo lo posible para explicarlo más claramente.
Saludos:
LiangCk
Puede utilizar SELECT coloum1, coloum2, coloum3, coloum4 EN # Tabla3 DE Database3.Table3' para crear una tabla en base a los resultados de la 'SELECT'. ¿Es eso lo que quieres decir? –
No, esto no es necesario porque podría tratarse de unos cientos de sql que pueden tener cada uno de ellos teniendo diferentes colores. Si hago lo que has hecho, ¿eso significa que creo unos cientos de tabla Temp? – Worgon
No estoy seguro de lo que quiere lograr; según tengo entendido, tiene varias tablas con diferentes columnas, y necesita insertar estos datos en una tabla temporal. ¿No puede hacer una copia de seguridad y restaurar toda la base de datos en una base de datos temporal? O eso, o tendrá que administrar un montón de diferentes tablas temporales. –