SQL - Nombre de tabla variable

 
Vista:

Nombre de tabla variable

Publicado por EduardoC (1 intervención) el 06/02/2017 19:33:30
Estimados,
Necesito copiar datos cada fin de mes desde una tabla general de movimiento mensual (datamov) a otra
que tenga por nombre "datames" + el año + el mes

Para hacer esto utilizo

INSERT INTO datames SELECT * FROM datamov ;

pero como debería ser la sentencia "INSERT INTO " si "datames" es de nombre variable , ( año + mes )

si estamos .
enero : del datamov copiar datos a datames201701
febrero datamov al datames201702
marzo datamov al datames201703 ..... asi sucesivamente . . .

como hago que el nombre del campo destino sea variable

INSERT INTO datames&AAAA&MM SELECT * FROM datamov ;

la base de datos es access.

Les agradeceria su ayuda.

atte.

Eduardo C.
Lima Peru
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Nombre de tabla variable

Publicado por Isaias (1921 intervenciones) el 07/02/2017 19:12:20
Simple, utiliza QUERY DINAMICO


1
2
3
DECLARE @SQLString NVARCHAR(1000)
SET @SQLString = N'INSERT INTO datames'+CONVERT(CHAR(6), GETDATE(), 112) + ' FROM datamov'
EXEC sp_executesql  @SQLString
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lisandro
Val: 28
Ha disminuido su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

Nombre de tabla variable

Publicado por Lisandro (8 intervenciones) el 15/02/2017 20:06:31
1
2
3
4
5
6
7
declare @sql varchar(max), @mes varchar(2), @anno varchar(4), @tabla varchar(13)
SELECT @mes=left('0'+cast(MONTH(getdate()) as varchar(2)),2) ,  @anno=YEAR(getdate())
select @mes
set @tabla='datames'+@anno+@mes
select @tabla
set @sql = 'INSERT INTO '+@tabla+' SELECT * FROM datamov'
exec (@sql)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar