• Domingo 22 de Diciembre de 2024, 23:39

Autor Tema:  crear base de datos por variables  (Leído 1656 veces)

juan_0986

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: pe
    • Ver Perfil
crear base de datos por variables
« en: Miércoles 30 de Julio de 2008, 05:38 »
0
buenas noches que tal, ojala alguien pueda ayudarme yo necesito crear una base de datos por programacion y lo quiero hacer en un store según los nombres y rutas que envie el usuario, yo se que para crear una data el codigo es este:

CREATE DATABASE library ON PRIMARY
(NAME=library_data,
  FILENAME='C:Archivos de programaMicrosoft SQL ServerMSSQLDatalibrary.mdf',
  SIZE=50MB,
  MAXSIZE=70MB,
  FILEGROWTH=1MB)

ahora bien tanto el nombre como la ruta necesito enviarlas en variables, lo que hice fue lo sgt

declare @ruta_mdf varchar(250),@nombre_data varchar(250)
set @nombre_data='mi_data_nombre'
set @ruta_mdf='D:mi_rutadata_conta_' + @nombre_data + '.mdf'
CREATE DATABASE @nombre_data ON PRIMARY
( NAME=@nombre_data,
  FILENAME=@ruta_mdf,
  SIZE=50MB,
  MAXSIZE=70MB,
  FILEGROWTH=1MB
  )

bueno pero esta codificacion me arroja un error el cual es que no lee el name ni el filemane en variables y como necesito que las datas se creen segun los parametros que envie, tambien probe con ponerle un set antes del name para que lo lea, pero fue inutil, busque informacion tambien en internet pero no encontre sobre lo que necesito, o quizas no se pueda crear base de datos de la forma que necesito, bueno oajala alguien pueda ayudarme

estoy usando el sql 2000

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: crear base de datos por variables
« Respuesta #1 en: Miércoles 30 de Julio de 2008, 06:18 »
0
Cita de: "juan_0986"
buenas noches que tal, ojala alguien pueda ayudarme yo necesito crear una base de datos por programacion y lo quiero hacer en un store según los nombres y rutas que envie el usuario, yo se que para crear una data el codigo es este:

CREATE DATABASE library ON PRIMARY
(NAME=library_data,
  FILENAME='C:Archivos de programaMicrosoft SQL ServerMSSQLDatalibrary.mdf',
  SIZE=50MB,
  MAXSIZE=70MB,
  FILEGROWTH=1MB)

ahora bien tanto el nombre como la ruta necesito enviarlas en variables, lo que hice fue lo sgt

declare @ruta_mdf varchar(250),@nombre_data varchar(250)
set @nombre_data='mi_data_nombre'
set @ruta_mdf='D:mi_rutadata_conta_' + @nombre_data + '.mdf'
CREATE DATABASE @nombre_data ON PRIMARY
( NAME=@nombre_data,
  FILENAME=@ruta_mdf,
  SIZE=50MB,
  MAXSIZE=70MB,
  FILEGROWTH=1MB
  )

bueno pero esta codificacion me arroja un error el cual es que no lee el name ni el filemane en variables y como necesito que las datas se creen segun los parametros que envie, tambien probe con ponerle un set antes del name para que lo lea, pero fue inutil, busque informacion tambien en internet pero no encontre sobre lo que necesito, o quizas no se pueda crear base de datos de la forma que necesito, bueno oajala alguien pueda ayudarme

estoy usando el sql 2000
Maestro. probá así:
Código: Text
  1. quotename(@variable)
  2.  
Debería funcionar.

Saludos
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

juan_0986

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: pe
    • Ver Perfil
Re: crear base de datos por variables
« Respuesta #2 en: Miércoles 30 de Julio de 2008, 17:48 »
0
bueno gracias por responder pero hubieras podido ser mas explicativo y decir como usarlo, de todas maneras lo busque en la ayuda pero no me sirve para usarlo con la sentencia create database; solo se puede utilizar con un select, bueno al menos fue solo eso lo que pude encontrar, pero bueno el problema lo resolvi de otra manera, quizas a alguien mas le pueda servir alli les dejo un store:

CREATE PROCEDURE SP_CREAR_DATAS
@ruta nvarchar(256),@nombre varchar(250)
AS
   DECLARE @name_data varchar(250);
   set @name_data='BD_CONTA_' + @nombre;

   EXECUTE ('CREATE DATABASE ' + @name_data + '
   ON
   ( NAME = ' + @name_data + '_dat,
       FILENAME = '''+ @ruta + @name_data + '.mdf'',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 )
   LOG ON
   ( NAME = ' + @name_data + '_log,
       FILENAME = '''+ @ruta + @name_data + '.ldf'',
       SIZE = 5MB,
       MAXSIZE = 25MB,
       FILEGROWTH = 5MB )'
   );
   GO

ya con esta pequeña codificacion puedes invocarlo desde power builder que era lo que me interesaba