Problemas al crear una Data Base

Iniciado por Skeletron, 6 Noviembre 2009, 02:15 AM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

La cuestion es la siguiente:
Tengo 2 archivos..
1 BAT que tengo que ejecutar que me hará todo un proceso de "instalacion" de una base de datos..
El archivo .Bat tiene lo siguiente:
mkdir c:\dce05
osql -S .\SQLEXPRESS -E -i "script_datos.sql"
pause


EL archivo script_datos.sql es el encargado de crear la base de datos y bla bla bla.. ok.. miren el tema que tiene ese archivo:
Código (sql) [Seleccionar]
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'dce05_ejemplos_estrella1')
DROP DATABASE [dce05_ejemplos_estrella1]
GO

CREATE DATABASE [dce05_ejemplos_estrella1]  
ON
(NAME = N'dce05_ejemplos_estrella1_Data',
FILENAME = N'c:\dce05\dce05_ejemplos_estrella1_Data.MDF',
SIZE = 2, FILEGROWTH = 10%)
LOG ON (
NAME = N'dce05_ejemplos_estrella1_Log',
FILENAME = N'c:\dce05\dce05_ejemplos_estrella1_Log.LDF',
SIZE = 1, FILEGROWTH = 10%)
COLLATE SQL_Latin1_General_CP1_CI_AS
GO

USE [dce05_ejemplos_estrella1]
GO

/*  CREACION DE TABLAS */
CREATE TABLE [dbo].[Productos] (
[Codigo] [int] IDENTITY(1,1) NOT NULL,
[Descripcion] [varchar](30) NOT NULL,
[Precio] [float] NOT NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[ItemsVenta] (
[Codigo] [int] identity(1,1) NOT NULL,
[CodigoVenta] [int],
[CodigoProducto] [int],
[Cantidad] [int] DEFAULT 0
) ON [PRIMARY]

CREATE TABLE [dbo].[Ventas] (
[Codigo] [int] identity(1,1) NOT NULL,
[Fecha] [datetime] DEFAULT getdate()
) ON [PRIMARY]
GO

DELETE [Ventas]
DELETE [ItemsVenta]
DELETE [Productos]
GO

/*  CREACION DE CONSTRAINTS */
ALTER TABLE Productos ADD CONSTRAINT PK_Productos
PRIMARY KEY (Codigo)

ALTER TABLE ItemsVenta ADD CONSTRAINT PK_ItemsVenta
PRIMARY KEY (Codigo)

ALTER TABLE Ventas ADD CONSTRAINT PK_Venta
PRIMARY KEY (Codigo)

ALTER TABLE ItemsVenta ADD CONSTRAINT FK_ItemsVenta_Productos
FOREIGN KEY (CodigoProducto) REFERENCES Productos (Codigo)

ALTER TABLE ItemsVenta ADD CONSTRAINT FK_ItemsVenta_Ventas
FOREIGN KEY (CodigoVenta) REFERENCES Ventas (Codigo)
GO

INSERT INTO Productos (Descripcion, Precio) VALUES ('MotherBoard PC333', 45.30);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Placa de Red 100 Mbps', 15.75);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Microprocesador 1GHz', 112.90);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Disco Rígido 7200 rpm', 84.10);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Access Point Wi-Fi 802.11g', 66.40);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Placa de Red PCMCIA', 25.00);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Hub USB 4 Puertos', 12.80);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Mouse óptico', 33.60);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Monitor 17 pulgadas', 175.50);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Gabinete Mid-Tower', 35.30);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Teclado Internet', 25.80);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Placa de Video 128 MB', 45.70);
INSERT INTO Productos (Descripcion, Precio) VALUES ('DVD-ROM 8x', 45.00);
GO





Pero miren el PROBLEMA que hay:
Citar


C:\Users\Noel\Desktop\Estrellas\1\Ejemplo\db>mkdir c:\dce05

C:\Users\Noel\Desktop\Estrellas\1\Ejemplo\db>osql -S .\SQLEXPRESS -E -i "script_
datos.sql"
1> 2> 3> 1> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> Mensaje 1803, Nivel 16, Estado 1
, Servidor NOEL-NOTEBOOK\SQLEXPRESS, Línea 2
Error de la instrucción CREATE DATABASE. El archivo principal debe ser de al
menos 3 MB para que pueda almacenar una copia de la base de datos de modelos.
1> 2> 3> Mensaje 911, Nivel 16, Estado 1, Servidor NOEL-NOTEBOOK\SQLEXPRESS, Lín
ea 2
La base de datos 'dce05_ejemplos_estrella1' no existe. Asegúrese de que ha
escrito el nombre correctamente.
1> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> Mensaje 2
714, Nivel 16, Estado 6, Servidor NOEL-NOTEBOOK\SQLEXPRESS, Línea 3
Ya hay un objeto con el nombre 'Productos' en la base de datos.
1> 2> 3> 4> 5> (0 filas afectadas)
(0 filas afectadas)
(13 filas afectadas)
1> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> Mensaje 1779, Nivel 1
6, Estado 1, Servidor NOEL-NOTEBOOK\SQLEXPRESS, Línea 3
La tabla 'Productos' ya tiene definida una clave principal.
Mensaje 1750, Nivel 16, Estado 1, Servidor NOEL-NOTEBOOK\SQLEXPRESS, Línea 3
No se pudo crear la restricción. Consulte los errores anteriores.
1> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> (1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
(1 fila afectada)
1>
C:\Users\Noel\Desktop\Estrellas\1\Ejemplo\db>pause
Presione una tecla para continuar . . .

Skeletron

Les comento que desde el CMD si escribo:
OSQL -S
Me dice:
Error: Ningun usuario seleccionado. Intentelo de nuevo con los modificadores -U y -E

43H4FH44H45H4CH49H56H45H

El error esta claro, de este modo ya funciona:

Código (sql) [Seleccionar]
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'dce05_ejemplos_estrella1')
DROP DATABASE [dce05_ejemplos_estrella1]
GO

CREATE DATABASE [dce05_ejemplos_estrella1] 
ON
(NAME = N'dce05_ejemplos_estrella1_Data',
FILENAME = N'c:\dce05\dce05_ejemplos_estrella1_Data.MDF',
FILEGROWTH = 10%)
LOG ON (
NAME = N'dce05_ejemplos_estrella1_Log',
FILENAME = N'c:\dce05\dce05_ejemplos_estrella1_Log.LDF',
SIZE = 1, FILEGROWTH = 10%)
COLLATE SQL_Latin1_General_CP1_CI_AS
GO

USE [dce05_ejemplos_estrella1]
GO

/*  CREACION DE TABLAS */
CREATE TABLE [dbo].[Productos] (
[Codigo] [int] IDENTITY(1,1) NOT NULL,
[Descripcion] [varchar](30) NOT NULL,
[Precio] [float] NOT NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[ItemsVenta] (
[Codigo] [int] identity(1,1) NOT NULL,
[CodigoVenta] [int],
[CodigoProducto] [int],
[Cantidad] [int] DEFAULT 0
) ON [PRIMARY]

CREATE TABLE [dbo].[Ventas] (
[Codigo] [int] identity(1,1) NOT NULL,
[Fecha] [datetime] DEFAULT getdate()
) ON [PRIMARY]
GO

DELETE [Ventas]
DELETE [ItemsVenta]
DELETE [Productos]
GO

/*  CREACION DE CONSTRAINTS */
ALTER TABLE Productos ADD CONSTRAINT PK_Productos
PRIMARY KEY (Codigo)

ALTER TABLE ItemsVenta ADD CONSTRAINT PK_ItemsVenta
PRIMARY KEY (Codigo)

ALTER TABLE Ventas ADD CONSTRAINT PK_Venta
PRIMARY KEY (Codigo)

ALTER TABLE ItemsVenta ADD CONSTRAINT FK_ItemsVenta_Productos
FOREIGN KEY (CodigoProducto) REFERENCES Productos (Codigo)

ALTER TABLE ItemsVenta ADD CONSTRAINT FK_ItemsVenta_Ventas
FOREIGN KEY (CodigoVenta) REFERENCES Ventas (Codigo)
GO

INSERT INTO Productos (Descripcion, Precio) VALUES ('MotherBoard PC333', 45.30);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Placa de Red 100 Mbps', 15.75);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Microprocesador 1GHz', 112.90);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Disco Rígido 7200 rpm', 84.10);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Access Point Wi-Fi 802.11g', 66.40);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Placa de Red PCMCIA', 25.00);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Hub USB 4 Puertos', 12.80);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Mouse óptico', 33.60);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Monitor 17 pulgadas', 175.50);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Gabinete Mid-Tower', 35.30);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Teclado Internet', 25.80);
INSERT INTO Productos (Descripcion, Precio) VALUES ('Placa de Video 128 MB', 45.70);
INSERT INTO Productos (Descripcion, Precio) VALUES ('DVD-ROM 8x', 45.00);
GO

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

43H4FH44H45H4CH49H56H45H

Una cosa más,  puesto que recien estas empezando es mejor que utilizes SQL Server Management Studio Express si no tienes instalado alguno similar, para ir observando los cambios que realizes, o si prefieres desde el Símbolo del sistema.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

Skeletron

#4
Y que le has cambiado amigo?
Solamente lo de Size? En que afectaba?

Leyendo un poco por ahí encontre ésto:
Hola , Soy Edyt yo también tuve esos problemas despues de mucho logre ejecutar el ejemplo.

Los pasos que seguí para que me funcione fueron:

1. Instalé el Microdoft Visual Studio .NET 2005

2. Intalé el  Microsoft SQL Server 2005 ( lo puedes descargar de : http://www.microsoft.com/sql/editions/express)

3. Cambiar del archivo: script_datos.sql que se encuntra en el carpeta db, lo siguiente:

SIZE = 2, FILEGROWTH = 10%)  POR LO SIGUIENTE :  SIZE = 3, FILEGROWTH = 10%)



Creo que la solucion estba en sacarle mas jugo a Google

Skeletron

Confirmado amigo.. Funciona perfectamente..