Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Crear tabla desde store procedure y como ver la lista de tablas

Estas en el tema de Crear tabla desde store procedure y como ver la lista de tablas en el foro de SQL Server en Foros del Web. Hola a todos, estoy haciendo algo parecido a una hoja de excel en ASP.Net. Los datos de la hoja se guardan en una tabla, de ...
  #1 (permalink)  
Antiguo 26/01/2010, 12:27
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Crear tabla desde store procedure y como ver la lista de tablas

Hola a todos, estoy haciendo algo parecido a una hoja de excel en ASP.Net. Los datos de la hoja se guardan en una tabla, de hecho la hoja es la tabla por asi decirlo. El problema que tengo es que asi como en excel, necesito poder crear mas hojas (tablas) con un nombre especificado por el usuario, tambien necesitaria que el usuario pudiera elegir que hoja (tabla) quiere ver, para asi poder realizar modificar, insertar o eliminar.

La idea que tenia para esto era hacer un store procedure y buscando encontre algo como esto que quice adecuar a lo que necesito pero no funciona ni el original ni el modificado, este es el original:

Código:
SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS OFF 
    GO
    CREATE PROCEDURE sp_Crear_Tabla_Recicle
        (@BaseDeDatos SYSNAME,@TablaRecicle SYSNAME)  AS
        DECLARE @INSTRUCCION1 CHAR(2000)
        DECLARE @INSTRUCCION2 CHAR(2000)
    SELECT @INSTRUCCION1='' +
        'CREATE TABLE [' + @BaseDeDatos + '].[dbo].[' + @TablaRecicle + '] (' +
        '[Id_Reciclaje] [numeric](18, 0) IDENTITY (1, 1) NOT NULL,' +
        '[Fecha_Exportacion] [datetime] NOT NULL,' +
        '[Nombre] [char] (40) COLLATE database_default NOT NULL,' +
        '[Paterno] [char] (30) COLLATE database_default NOT NULL,' +
        '[Materno] [char] (30) COLLATE database_default NOT NULL,' +
        ') ON [PRIMARY] '
    SELECT @INSTRUCCION2='' +
        'ALTER TABLE [' + @BaseDeDatos + '].[dbo].['+@TablaRecicle+'] WITH NOCHECK ADD  ' +
        'CONSTRAINT [DF_'+@TablaRecicle+'_Paterno] DEFAULT ('+CHAR(39)+CHAR(39)+') FOR [Paterno],' +
        'CONSTRAINT [DF_'+@TablaRecicle+'_Materno] DEFAULT ('+CHAR(39)+CHAR(39)+') FOR [Materno],' +
        'CONSTRAINT [DF_'+@TablaRecicle+'_Resultado] DEFAULT ('+CHAR(39)+CHAR(39)+') FOR [Resultado],' +
        'CONSTRAINT [PK_'+@TablaRecicle+'] PRIMARY KEY  CLUSTERED ' +
        '(' +
            '	[Id_Reciclaje]' +
        ')  ON [PRIMARY] '
Este es el modificado por mi:
Código:
CREATE PROCEDURE sp_Crear_Tabla1
        (@Tabla SYSNAME)  AS
        DECLARE @INSTRUCCION1 CHAR(8000)        
    SELECT @INSTRUCCION1='' +
        'CREATE TABLE [SAP_SENSA].[dbo].['+@Tabla+']'+
		 '(' +
        '[no_proy] [int] [NOT] [NULL] [identity] [primary] [key],' +
        '[rc] [char](50),' +
		'[contrato] [char](50),' +
		'[nombre_cliente] [char](50),' +
		'[no_proyecto] [char](100),' +
		'[se] [char](100),' +
		'[solucion] [char](100),' +
		'[equipo] [char](100),' +
		'[tipo_servicio] [char](100),' +
		'[plazo] [char](50),' +
		'[fechas_iniciov] [smalldatetime],' +
		'[fecha_limitev] [smalldatetime],' +
		'[iapl01] [char](50),' +
		'[iapl02] [char](50),' +
		'[iapl03] [char](50),' +
		'[tpro01] [char](50),' +
		'[tpro02] [char](50),' +
		'[responsable] [char](50),' +
		'[fecha_iniciopp] [smalldatetime],' +
		'[fecha_finpp] [smalldatetime],' +
		'[diaspp] [int],' +
		'[fecha_iniciopr] [smalldatetime],' +
		'[fecha_finpr] [smalldatetime],' +
		'[diaspr] [int],' +
		'[ciudad] [char](50),' +
		'[factor] [char](50),' +
		'[estado] [char](50))'
Retomando, primero, necesito tanto poder crear la tabla, probablemente la mejor manera es con un store procedure. Segundo guardar en algun lado los nombres de las tablas de que consta la base de datos de forma que el usuario pueda seleccionar que tabla quiere ver.
  #2 (permalink)  
Antiguo 26/01/2010, 13:18
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

Código:
         select * from information_schema.tables
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 26/01/2010, 18:17
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

Cita:
Iniciado por Andres95 Ver Mensaje
Código:
         select * from information_schema.tables
Saludos!
Gracias, ahora solo falta que me den una solucion al otro problema.
  #4 (permalink)  
Antiguo 26/01/2010, 20:00
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Busqueda Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

Código:
CREATE PROCEDURE sp_Crear_Tabla1     
        (@Tabla nvarchar(20))  AS
        DECLARE @INSTRUCCION1 nvarCHAR(4000)        
    --[SAP_SENSA].[dbo].
    SELECT @INSTRUCCION1='CREATE TABLE ['+@Tabla+']'+
		 '(' +
        '[no_proy] [int] NOT NULL identity primary key,' +
        '[rc] [char](50),' +
		'[contrato] [char](50),' +
		'[nombre_cliente] [char](50),' +
		'[no_proyecto] [char](100),' +
		'[se] [char](100),' +
		'[solucion] [char](100),' +
		'[equipo] [char](100),' +
		'[tipo_servicio] [char](100),' +
		'[plazo] [char](50),' +
		'[fechas_iniciov] [smalldatetime],' +
		'[fecha_limitev] [smalldatetime],' +
		'[iapl01] [char](50),' +
		'[iapl02] [char](50),' +
		'[iapl03] [char](50),' +
		'[tpro01] [char](50),' +
		'[tpro02] [char](50),' +
		'[responsable] [char](50),' +
		'[fecha_iniciopp] [smalldatetime],' +
		'[fecha_finpp] [smalldatetime],' +
		'[diaspp] [int],' +
		'[fecha_iniciopr] [smalldatetime],' +
		'[fecha_finpr] [smalldatetime],' +
		'[diaspr] [int],' +
		'[ciudad] [char](50),' +
		'[factor] [char](50),' +
		'[estado] [char](50))'

    print @INSTRUCCION1
    EXECUTE sp_executesql @INSTRUCCION1
go
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 26/01/2010, 20:12
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

aunque ya leyendo bien el caso..

si todas las tablas van a tener la misma estructura porque no agregar una tabla que tenga los nombres de las pestanas y en esta tabla solo un campo id que haga referencia a las tablas y seria el id por el que filtrarias para mostrar al usuario como si fueran hojas..

d:D

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #6 (permalink)  
Antiguo 27/01/2010, 00:05
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

Espero haber entendido lo que quiciste decir:

Que cree una tabla que contenga de campos: id (primary key), nombrehoja.

Eso es lo que entendi solamente y no estoy seguro si va dirigido a mostrar las tablas de la base de datos (algo que ya me dijeron como).

Gracias y pues resuelve esta dudilla jeje.

Se me ocurren varias ideas para lo que es mostrar las tablas de la base de datos ya que no necesito que se vean todas, solo las que tienen la funcion de hojas, en este caso como dividi en dos la hoja de excel, puse grillas separadas los datos del proyecto y el calendario (de donde se crea una grafica, ya veo esto en otro tema), entonces la idea seria que el usuario pueda ver las tablas de proyectos y calendarios solamente (aqui es donde podria entrar la idea que me proporcionas, a menos que me este equivocando).
  #7 (permalink)  
Antiguo 27/01/2010, 07:23
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Busqueda Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

Si la cosa es no crear varias tablas fisicas, sino controlarlo en la misma tabla teniendo un Id de Hoja...

Y el catalogo con Id y descripcion de las hojas te sirve para mostrar el combo y para validar el campo Id en la tabla de info...(foreign key).

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #8 (permalink)  
Antiguo 27/01/2010, 12:33
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

Checando hoy la hoja de excel de ejemplo que tengo, me puse a ver lo que me quiciste decir y llegue a esta conclusion:

Creo la tabla hojas con campos id y nombrehoja, idtabla (foranea)
Creo otra tabla llamada calendario con campos idtabla (primaria), nombrehoja, semana1, semana2, ... semana48.

Espero vaya bien el asunto, nomas no se muy bien como haria la subconsulta, puesto que primero se crea la hoja, luego se agrega la hoja al calendario (claro en sentido figurado todo esto).

Última edición por LOD_Fredy; 27/01/2010 a las 17:37
  #9 (permalink)  
Antiguo 28/01/2010, 01:27
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

Esta es la subconsulta que se me ocurrio:

Código:
SELECT * FROM CALENDARIO WHERE no_cal IN (SELECT no_cal FROM HOJAS WHERE nombrehoja="+"'var'+")
puse la foranea en HOJAS debido a la estructura de la instruccion SQL.

La verdad ya no recuerdo bien bases de datos y tengo el siguiente dilema.

Si algo esta mal o hay una mejor solucion me dicen, mañana veo que tal funciona esto que hice junto a muchos otros cambios que he hecho al sistema completo.
  #10 (permalink)  
Antiguo 28/01/2010, 07:11
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

si, seria un maestro - detalle..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #11 (permalink)  
Antiguo 28/01/2010, 09:34
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

En lugar de IN y por tiempo de respuesta, utiliza EXISTS
  #12 (permalink)  
Antiguo 28/01/2010, 20:42
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

OK ya hice el cambio, gracias. Ahora solo falta volver a idear como tomar los datos de la tabla para crear las graficas pero eso es otro tema. Gracias.
  #13 (permalink)  
Antiguo 31/01/2010, 21:01
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear tabla desde store procedure y como ver la lista de tablas

al parecer ya quedo pero hice mucho cambios como cambio de tablas, de hecho el cliente fue quien me dijo que tablas queria (por ahi hubieramos empezado), tons ya nomas toy viendo lo de la graficada. Gracias.

Etiquetas: lista, procedure, store, tablas, ver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.