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:
Este es el modificado por mi: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] '
Código:
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. 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))'