viernes, 10 de septiembre de 2010

Cómo crear miles de tablas, vistas, usuarios usando SQL Server.

En este ejemplo, voy a usar sentencias while de T-SQL para crear varias tablas.
Si deseamos crear varios usuarios, o vistas, el procedimiento es el mismo.

Lo que voy a hacer es crear tablas que se llaman tabla0, tabla1, tabla2, etc con una sola columna llamada columna. Con este código puedo crear decenas de tablas, centenas de tablas o la cantidad que yo desee.

Código para crear miles de tablas en SQL Server:

-- Codigo para crear miles de tablas
declare @contador int=0
declare @nombretabla varchar(5)='tabla'

while (@val<1000) --Permite que se crean mil tablas
BEGIN
          /*Crea tablas con el nombre tabla0, tabla1, tabla2 con una
          columna llamada columna de tipo entero*/
          Execute('create table '+@nombretabla+@contador+'(columna int)')
          --Incrementa el contador hasta llegar a mil
          set @contador=@contador1
END

Tienes más dudas ?. Escribe a este blog.

People who read this post also read :



4 comentarios:

  1. muy buen aporte, me podrias decir donde puedo encontrar un manual de programacion en transact-sql, mi correo es zucoso19@gmail.com

    ResponderEliminar
  2. http://msdn.microsoft.com/eS-Es/library/ms189826(v=sql.90).aspx

    ResponderEliminar
  3. Buenos Dias,

    Necesito de su colaboración, tengo dos tabals tempoorales en la tabla 1 guardo la información y en la la tabla 2 necesito enviar lo de la tabla 1 pero insertsandole un id, como se que en sql 2008 nhoi se puede hacer, requiero de un select para actualizar la tabla creando un contador que me inserte el id.

    la estructura es la siguiente pero no se si esta bien,

    El contador funciona en un @maximo y el @registros me cuenta lo de la tabla temporal

    Espero me entiendan y me puedan ayudar



    Gracias




    Set @Registros = ('SELECT COUNT(*) FROM '+RTRIM(@NomtablaUI)

    while (@maximo<=@maximo+@Registros )
    begin

    set @maximo=@maximo+1

    Set @instruccion=' UPDATE '+RTRIM(@NomtablaUI)+' SET IFC_NROCONS= @Maximo '+
    ' WHERE IFC_NIT='+RTRIM(@Nomtabla)+'.IFC_NIT '+
    ' AND IFWC_LOGIN='+RTRIM(@Nomtabla)+'.IFWC_LOGIN '+
    ' AND IFT_TIPO='+RTRIM(@Nomtabla)+'.IFT_TIPO '+
    ' AND IFV_VIGENCIA='+RTRIM(@Nomtabla)+'.IFV_VIGENCIA '+
    ' AND IFP_PERIODO='+RTRIM(@Nomtabla)+'.IFP_PERIODO ) '
    end
    Exec sp_executesql @instruccion

    Gracias!!!!!

    ResponderEliminar
  4. Mi email está en la zona de contactos calbimonte.daniel@gmail.com

    Pasame las estructuras de las tablas.
    Creo que lo que quieres es más fácil de lo que piensas y no estas yendo por buen camino.

    ResponderEliminar