En este grupo En todos

Grupo de SQL Server



Crear varias tablas con el mismo tipo de datos

Jennifer
Ingenieria de sistemas fundación unive...
Escrito por Jennifer Panqueva Antonio
el 03/08/2009 | Nivel Básico

Hola

Quisiera pedir ayuda o asesoria en cuanto a la acreación de varias tablas con el mismo tipo de datos pero con con diferentes datos, esto quiere decir que quiero crear n cantidad de tablas con el mismo nombre de columnas y tipo de datos en este caso que todas tengan los siguientes datos:

Id_Aseguradoras numeric(5, 0) Unchecked
Nombre varchar(255) Checked
Codigo varchar(50) Checked
Descripcion varchar(4000) Checked
Abreviatura varchar(25) Checked
Indicador smallint Checked
Activo bit Checked
Auditoria bit Checked
Orden bit Checked
Aplicacion nvarchar(100) Checked

Como son muchas tablas es un poco demorado crear una por una por ello pido ayuda para ver como puedo crear varias tablas en un solo script, es decir correrlo y que salgo de una, creadas las tablas.


Gracias

Jonathan Navarro Camacho
Ingenieria de sistemas fundación unive...
Escrito por Jonathan Navarro Camacho
el 08/08/2009 | Nivel Básico

Lo que puedes hacer es lo siguiente, dentro de una sentencia de control for escribe la instrucción para crear la tabla "create table" dependiendo del DBMS, el literal o nombre de la tabla deberá ser incremental es decir: nombretabla1 para la primera tabla, nombretabla2 para la segunda etc... , la instrucción for deberá crear tantas tablas como desees por ejemplo:

string strSql;
for(int i = 0; i <= 10; i++)
{
strSql = "Create table NombreTabla" + i + " (NombreColumna1 TipoColumna1, NombreColumna2 TipoColumna2,......... NombreColumnaN TipoColumnaN)";
}

Mas o menos este es un ejemplo, pero claro esto es dependiendo del lenguaje de programacion que utilices y del DBMS se MySQl, SQLServer, Oracle etc.;

Pedro Antonio B Salazar
Tecnico superior redes cisco centro ju...
Escrito por Pedro Antonio B Salazar
el 25/09/2009 | Nivel Básico

Hola Jennifer para SQL 2005 lo puedes hacer de esta manera:


USE [BASE_DATOS]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DECLARE @NUM NUMERIC (2,0) --Contador de Tablas
DECLARE @NOMBRE_TABLA VARCHAR (20)
SET @NUM = 1
WHILE @NUM <=5 --El numero de Tablas que quieras crear
BEGIN
SET @NOMBRE_TABLA ='TABLA'+STR(@NUM,1,0) --Nombre de la Tabla para Modificar
CREATE TABLE TABLA(
[D0_01] [numeric](18, 0) NOT NULL,
[D0_05] [numeric](18, 0) NOT NULL,
[D0_10] [numeric](18, 0) NOT NULL,
[D0_25] [numeric](18, 0) NOT NULL,
[D0_50] [numeric](18, 0) NOT NULL,
[D1] [numeric](18, 0) NOT NULL,
[D5] [numeric](18, 0) NOT NULL,
[D10] [numeric](18, 0) NOT NULL,
[D20] [numeric](18, 0) NOT NULL,
[D50] [numeric](18, 0) NOT NULL,
[D100] [numeric](18, 0) NOT NULL,
[C0_05] [numeric](18, 0) NOT NULL,
[C0_10] [numeric](18, 0) NOT NULL,
[C0_25] [numeric](18, 0) NOT NULL,
[C0_50] [numeric](18, 0) NOT NULL,
[C5] [numeric](18, 0) NOT NULL,
[C10] [numeric](18, 0) NOT NULL,
[C20] [numeric](18, 0) NOT NULL,
[C50] [numeric](18, 0) NOT NULL,
[C100] [numeric](18, 0) NOT NULL,
[C500] [numeric](18, 0) NOT NULL,
) ON [PRIMARY]
EXEC sp_rename 'TABLA', @NOMBRE_TABLA --Aqui cambias el nombre de TABLA
IF @NUM = 5 BREAK --Condicional para DETENER CICLO
ELSE
SET @NUM = @NUM + 1
CONTINUE
END


Este ejemplo te crea 5 tablas con nombre TABLA1, TABLA2, TABLA3, TABLA4, TABLA5 con la misma estructura para todas las tablas, espero que te sirva, Saludos!

Mcts Isaias Islas González
Distrito Federal, Mé...
Escrito por Mcts Isaias Islas González
el 12/01/2010 | Nivel Básico

Excelente propuesta, saludos