copia base datos

08/01/2007 - 13:14 por meri | Informe spam
Hola a todos,

A ver si podeis ayudarme, tengo el siguiente problema,

Creo una copia de la estructura de una bbdd para luego crear una bbdd
igual a la anterior en otro servidor (solo quiero la estructura, no los
datos), y lo hago con el asistente del Enterprise Manager, generando un
script sql con todos los objetos de la base de datos. El script queda
algo parecido a lo siguiente:

CREATE DATABASE [Pruebas] ON (NAME = N'Pruebas_dat', FILENAME N'F:\Datos Sql\Pruebas.mdf' , SIZE = 790, FILEGROWTH = 10%) LOG ON
(NAME = N'Prueba_log', FILENAME = N'G:\Logs Sql\Prueba_log.ldf' , SIZE
= 2, FILEGROWTH = 10%)
COLLATE Traditional_Spanish_CI_AI
GO

exec sp_dboption N'GesLife', N'autoclose', N'false'
GO

exec sp_dboption N'GesLife', N'bulkcopy', N'true'
GO


use [Pruebas]
GO

if not exists (select * from master.dbo.syslogins where loginname N'usuario_pruebas')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select
@logindb = N'Pruebas', @loginlang = N'Español'
if @logindb is null or not exists (select * from
master.dbo.sysdatabases where name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from
master.dbo.syslanguages where name = @loginlang) and @loginlang <>
N'us_english')
select @loginlang = @@language
exec sp_addlogin N'usuario_pruebas', null, @logindb, @loginlang
END
GO


CREATE TABLE [dbo].[Usuarios] (
[Id_Usuario] [int] IDENTITY (1, 1) NOT NULL ,
[Nombre] [varchar] (20) NOT NULL ,
[Apellido] [varchar] (20) NOT NULL ,
[Fec_Anulacion] [datetime] NULL
) ON [PRIMARY]
GO

etc. etc.

El caso es que después de hacer esto varias veces para trabajar con
copias de la bbdd, me he dado cuenta de que me ha creado también en la
base de datos 'Master' todas las tablas de esa base de datos que estoy
copiando. Y no entiendo por qué ha ocurrido esto, ya que en el script
pone 'use [Pruebas]' que sería la base de datos que estoy creando.
Alguien sabe por qué puede estar ocurriendo esto?

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Maxi
08/01/2007 - 13:21 | Informe spam
Hola, si lo creo en la master es porque quizas en alguna ocacion no hayas
puesto el use, yo te recomiendo hacerlo en 2 pasos, primero ejecutar hasta
la creacion de la bdd, luego asegurar el USER y por ultimo la creacion de
los objetos


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"meri" escribió en el mensaje
news:
Hola a todos,

A ver si podeis ayudarme, tengo el siguiente problema,

Creo una copia de la estructura de una bbdd para luego crear una bbdd
igual a la anterior en otro servidor (solo quiero la estructura, no los
datos), y lo hago con el asistente del Enterprise Manager, generando un
script sql con todos los objetos de la base de datos. El script queda
algo parecido a lo siguiente:

CREATE DATABASE [Pruebas] ON (NAME = N'Pruebas_dat', FILENAME N'F:\Datos Sql\Pruebas.mdf' , SIZE = 790, FILEGROWTH = 10%) LOG ON
(NAME = N'Prueba_log', FILENAME = N'G:\Logs Sql\Prueba_log.ldf' , SIZE
= 2, FILEGROWTH = 10%)
COLLATE Traditional_Spanish_CI_AI
GO

exec sp_dboption N'GesLife', N'autoclose', N'false'
GO

exec sp_dboption N'GesLife', N'bulkcopy', N'true'
GO


use [Pruebas]
GO

if not exists (select * from master.dbo.syslogins where loginname N'usuario_pruebas')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select
@logindb = N'Pruebas', @loginlang = N'Español'
if @logindb is null or not exists (select * from
master.dbo.sysdatabases where name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from
master.dbo.syslanguages where name = @loginlang) and @loginlang <>
N'us_english')
select @loginlang = @@language
exec sp_addlogin N'usuario_pruebas', null, @logindb, @loginlang
END
GO


CREATE TABLE [dbo].[Usuarios] (
[Id_Usuario] [int] IDENTITY (1, 1) NOT NULL ,
[Nombre] [varchar] (20) NOT NULL ,
[Apellido] [varchar] (20) NOT NULL ,
[Fec_Anulacion] [datetime] NULL
) ON [PRIMARY]
GO

etc. etc.

El caso es que después de hacer esto varias veces para trabajar con
copias de la bbdd, me he dado cuenta de que me ha creado también en la
base de datos 'Master' todas las tablas de esa base de datos que estoy
copiando. Y no entiendo por qué ha ocurrido esto, ya que en el script
pone 'use [Pruebas]' que sería la base de datos que estoy creando.
Alguien sabe por qué puede estar ocurriendo esto?

Muchas gracias
Respuesta Responder a este mensaje
#2 meri
08/01/2007 - 16:18 | Informe spam
Muchas gracias Maxi, a partir de ahora lo haré como comentas, porque
he estado revisando el script que había guardado y sí que pone el
'use [Pruebas]' así que no se por qué habrá ocurrido.
Supongo que no habrá ningún problema en borrar esas tablas y PAs de
la bbdd Master y se borrarán como del resto de bases de datos.

Muchas gracias y un saludo
Maxi ha escrito:

Hola, si lo creo en la master es porque quizas en alguna ocacion no hayas
puesto el use, yo te recomiendo hacerlo en 2 pasos, primero ejecutar hasta
la creacion de la bdd, luego asegurar el USER y por ultimo la creacion de
los objetos


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"meri" escribió en el mensaje
news:
Hola a todos,

A ver si podeis ayudarme, tengo el siguiente problema,

Creo una copia de la estructura de una bbdd para luego crear una bbdd
igual a la anterior en otro servidor (solo quiero la estructura, no los
datos), y lo hago con el asistente del Enterprise Manager, generando un
script sql con todos los objetos de la base de datos. El script queda
algo parecido a lo siguiente:

CREATE DATABASE [Pruebas] ON (NAME = N'Pruebas_dat', FILENAME > N'F:\Datos Sql\Pruebas.mdf' , SIZE = 790, FILEGROWTH = 10%) LOG ON
(NAME = N'Prueba_log', FILENAME = N'G:\Logs Sql\Prueba_log.ldf' , SIZE
= 2, FILEGROWTH = 10%)
COLLATE Traditional_Spanish_CI_AI
GO

exec sp_dboption N'GesLife', N'autoclose', N'false'
GO

exec sp_dboption N'GesLife', N'bulkcopy', N'true'
GO


use [Pruebas]
GO

if not exists (select * from master.dbo.syslogins where loginname > N'usuario_pruebas')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select
@logindb = N'Pruebas', @loginlang = N'Español'
if @logindb is null or not exists (select * from
master.dbo.sysdatabases where name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from
master.dbo.syslanguages where name = @loginlang) and @loginlang <>
N'us_english')
select @loginlang = @@language
exec sp_addlogin N'usuario_pruebas', null, @logindb, @loginlang
END
GO


CREATE TABLE [dbo].[Usuarios] (
[Id_Usuario] [int] IDENTITY (1, 1) NOT NULL ,
[Nombre] [varchar] (20) NOT NULL ,
[Apellido] [varchar] (20) NOT NULL ,
[Fec_Anulacion] [datetime] NULL
) ON [PRIMARY]
GO

etc. etc.

El caso es que después de hacer esto varias veces para trabajar con
copias de la bbdd, me he dado cuenta de que me ha creado también en la
base de datos 'Master' todas las tablas de esa base de datos que estoy
copiando. Y no entiendo por qué ha ocurrido esto, ya que en el script
pone 'use [Pruebas]' que sería la base de datos que estoy creando.
Alguien sabe por qué puede estar ocurriendo esto?

Muchas gracias
Respuesta Responder a este mensaje
#3 Jose Mariano Alvarez
08/01/2007 - 17:32 | Informe spam
Es probable que la creacion de la tabla falle debido a el lugar fisico donde
almacena los archivos (discos F y G).
Luego el USE falla y te genera todo en la master.

Debes revisar si te da error al ejecutar el script y hacer lo que te dijo
Maxi.

Suerte



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)




"meri" wrote in message
news:

Muchas gracias Maxi, a partir de ahora lo haré como comentas, porque
he estado revisando el script que había guardado y sí que pone el
'use [Pruebas]' así que no se por qué habrá ocurrido.
Supongo que no habrá ningún problema en borrar esas tablas y PAs de
la bbdd Master y se borrarán como del resto de bases de datos.

Muchas gracias y un saludo
Maxi ha escrito:

Hola, si lo creo en la master es porque quizas en alguna ocacion no hayas
puesto el use, yo te recomiendo hacerlo en 2 pasos, primero ejecutar hasta
la creacion de la bdd, luego asegurar el USER y por ultimo la creacion de
los objetos


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"meri" escribió en el mensaje
news:
Hola a todos,

A ver si podeis ayudarme, tengo el siguiente problema,

Creo una copia de la estructura de una bbdd para luego crear una bbdd
igual a la anterior en otro servidor (solo quiero la estructura, no los
datos), y lo hago con el asistente del Enterprise Manager, generando un
script sql con todos los objetos de la base de datos. El script queda
algo parecido a lo siguiente:

CREATE DATABASE [Pruebas] ON (NAME = N'Pruebas_dat', FILENAME > N'F:\Datos Sql\Pruebas.mdf' , SIZE = 790, FILEGROWTH = 10%) LOG ON
(NAME = N'Prueba_log', FILENAME = N'G:\Logs Sql\Prueba_log.ldf' , SIZE
= 2, FILEGROWTH = 10%)
COLLATE Traditional_Spanish_CI_AI
GO

exec sp_dboption N'GesLife', N'autoclose', N'false'
GO

exec sp_dboption N'GesLife', N'bulkcopy', N'true'
GO


use [Pruebas]
GO

if not exists (select * from master.dbo.syslogins where loginname > N'usuario_pruebas')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select
@logindb = N'Pruebas', @loginlang = N'Español'
if @logindb is null or not exists (select * from
master.dbo.sysdatabases where name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from
master.dbo.syslanguages where name = @loginlang) and @loginlang <>
N'us_english')
select @loginlang = @@language
exec sp_addlogin N'usuario_pruebas', null, @logindb, @loginlang
END
GO


CREATE TABLE [dbo].[Usuarios] (
[Id_Usuario] [int] IDENTITY (1, 1) NOT NULL ,
[Nombre] [varchar] (20) NOT NULL ,
[Apellido] [varchar] (20) NOT NULL ,
[Fec_Anulacion] [datetime] NULL
) ON [PRIMARY]
GO

etc. etc.

El caso es que después de hacer esto varias veces para trabajar con
copias de la bbdd, me he dado cuenta de que me ha creado también en la
base de datos 'Master' todas las tablas de esa base de datos que estoy
copiando. Y no entiendo por qué ha ocurrido esto, ya que en el script
pone 'use [Pruebas]' que sería la base de datos que estoy creando.
Alguien sabe por qué puede estar ocurriendo esto?

Muchas gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida