Bases de Datos - problema en creacion de base datos por codigo

 
Vista:
sin imagen de perfil

problema en creacion de base datos por codigo

Publicado por cazadorite (1 intervención) el 21/06/2009 13:36:17
hola no consigo ver que esta asignando mal en el insert en la restriccion de detalle de venta en cod venta pero yo lo miro y le encuentro error.



USE master
GO

CREATE DATABASE LAB3_TP04
ON
( NAME = 'LAB3_TP04_dat',
FILENAME = 'c:LAB3_TP04_dat.mdf',
SIZE = 1MB,
MAXSIZE = 50MB,
FILEGROWTH = 2MB )
LOG ON
( NAME = 'LAB3_TP04_log',
FILENAME = 'c:LAB3_TP04_log.ldf',
SIZE = 1MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB )
GO

USE LAB3_TP04
GO

CREATE TABLE PAISES
(
COD_PAIS SMALLINT NOT NULL,
PAIS VARCHAR(30) NOT NULL CHECK(LTRIM(RTRIM(PAIS))<>'')
CONSTRAINT PK_PAIS_CODPA PRIMARY KEY (COD_PAIS)
)
GO

CREATE TABLE LOCALIDADES
(
CP SMALLINT NOT NULL CHECK(CP<=9999),
LOCALIDAD VARCHAR(30) NOT NULL CHECK(LTRIM(RTRIM(LOCALIDAD))<>''),
COD_PAIS SMALLINT NOT NULL REFERENCES PAISES (COD_PAIS)
CONSTRAINT PK_LOC_CP PRIMARY KEY (CP)
)
GO

CREATE TABLE CLIENTES
(
NOMBRE VARCHAR(40) NOT NULL CHECK(RTRIM(LTRIM(NOMBRE))<>''),
APELLIDO VARCHAR(40) NOT NULL CHECK (RTRIM(LTRIM(APELLIDO))<>''),
TELEFONO VARCHAR(30) NULL,
CP SMALLINT NOT NULL CHECK (CP <=9999) REFERENCES LOCALIDADES (CP),
COD_CLIENTE TINYINT NOT NULL CHECK(COD_CLIENTE >0)
CONSTRAINT PK_CLI_CODCLI PRIMARY KEY (COD_CLIENTE)
)
GO

CREATE TABLE PROVEEDORES
(
COD_PROVEEDOR TINYINT NOT NULL CHECK(COD_PROVEEDOR >0),
NOMBRE VARCHAR(40) NOT NULL CHECK(RTRIM(LTRIM(NOMBRE))<>''),
DIRECCION VARCHAR(45) NULL,
TELEFONO VARCHAR(30) NULL,
CP SMALLINT NOT NULL REFERENCES LOCALIDADES (CP)
CONSTRAINT PK_PROV_CODPROV PRIMARY KEY (COD_PROVEEDOR)
)
GO

CREATE TABLE VENTAS
(
COD_VENTA INT NOT NULL CHECK(COD_VENTA>0),
COD_CLIENTE TINYINT NOT NULL REFERENCES CLIENTES (COD_CLIENTE),
FECHA SMALLDATETIME NOT NULL CHECK (FECHA <= GETDATE())
CONSTRAINT PK_NUM PRIMARY KEY(COD_VENTA)
)
GO

CREATE TABLE PRODUCTOS
(
COD_PRODUCTO INT NOT NULL CHECK(COD_PRODUCTO >0),
DESCRIPCION VARCHAR(70) NOT NULL,
PRECIO_U NUMERIC(9,2) NOT NULL CHECK (PRECIO_U >=0),
COD_PROVEEDOR TINYINT NOT NULL CHECK(COD_PROVEEDOR >0) REFERENCES PROVEEDORES(COD_PROVEEDOR)
CONSTRAINT PK_PROD_CODPROD PRIMARY KEY (COD_PRODUCTO)
)
GO

CREATE TABLE DETALLE_VENTA
(
COD_VENTA INT NOT NULL REFERENCES VENTAS (COD_VENTA),
COD_PRODUCTO INT NOT NULL REFERENCES PRODUCTOS (COD_PRODUCTO),
CANTIDAD SMALLINT NOT NULL,
PRECIO_U NUMERIC(9,2) NOT NULL
CONSTRAINT PK_DET PRIMARY KEY(COD_VENTA, COD_PRODUCTO)
)
GO

-- Insertar registros a la tabla detalle_ventas

INSERT INTO DETALLE_VENTA (COD_VENTA, COD_PRODUCTO, CANTIDAD,PRECIO_U)
VALUES(1,2,2,0.62)

INSERT INTO DETALLE_VENTA (COD_VENTA, COD_PRODUCTO, CANTIDAD,PRECIO_U)
VALUES(2,1,5,0.42)

INSERT INTO DETALLE_VENTA (COD_VENTA, COD_PRODUCTO, CANTIDAD,PRECIO_U)
VALUES(3,4,3,0.32)

INSERT INTO DETALLE_VENTA (COD_VENTA, COD_PRODUCTO, CANTIDAD,PRECIO_U)
VALUES(4,5,7,0.22)

-- Insertar registros a la tabla ventas

INSERT INTO VENTAS (COD_VENTA,COD_CLIENTE, FECHA) VALUES (1,1,'10/07/2006')

INSERT INTO VENTAS (COD_VENTA,COD_CLIENTE, FECHA) VALUES (2,2,'11/07/2006')

INSERT INTO VENTAS (COD_VENTA,COD_CLIENTE, FECHA) VALUES (3,3,'12/07/2006')

INSERT INTO VENTAS (COD_VENTA,COD_CLIENTE, FECHA) VALUES (4,4,'13/07/2006')

-- Insertar registros a la tabla productos

INSERT INTO PRODUCTOS (COD_PRODUCTO,DESCRIPCION,PRECIO_U,COD_PROVEEDOR) VALUES (1,'LAPICERA AZUL',0.62,1)
INSERT INTO PRODUCTOS (COD_PRODUCTO,DESCRIPCION,PRECIO_U,COD_PROVEEDOR) VALUES (2,'LAPICERA VERDE',0.42,2)
INSERT INTO PRODUCTOS (COD_PRODUCTO,DESCRIPCION,PRECIO_U,COD_PROVEEDOR) VALUES (3,'TEMPERAS VARIOS COLORES',0.32,3)
INSERT INTO PRODUCTOS (COD_PRODUCTO,DESCRIPCION,PRECIO_U,COD_PROVEEDOR) VALUES (4,'LAPIZ NEGRO',0.52,4)

-- Insertar registros a la tabla Paises

INSERT INTO PAISES (COD_PAIS, PAIS) VALUES (1,'ARGENTINA')
INSERT INTO PAISES (COD_PAIS, PAIS) VALUES (2, 'BRASIL')
INSERT INTO PAISES (COD_PAIS, PAIS) VALUES (3, 'URUGUAY')
INSERT INTO PAISES (COD_PAIS, PAIS) VALUES (4, 'ALEMANIA')
INSERT INTO PAISES (COD_PAIS, PAIS) VALUES (5, 'ESPAÑA')

-- Insertar registros a la tabla Localidades

INSERT INTO LOCALIDADES (CP, LOCALIDAD, COD_PAIS) VALUES (1665, 'JOSE C PAZ', 1)
INSERT INTO LOCALIDADES (CP, LOCALIDAD, COD_PAIS) VALUES (1000, 'SAO PAULO', 2)
INSERT INTO LOCALIDADES (CP, LOCALIDAD, COD_PAIS) VALUES (2000, 'MONTEVIDEO', 3)
INSERT INTO LOCALIDADES (CP, LOCALIDAD, COD_PAIS) VALUES (2233, 'BERLIN', 4)
INSERT INTO LOCALIDADES (CP, LOCALIDAD, COD_PAIS) VALUES (5555, 'BARCELONA', 5)

-- Insertar registros a la tabla Clientes

INSERT INTO CLIENTES (NOMBRE, APELLIDO, TELEFONO, CP, COD_CLIENTE) VALUES ('Juan', 'Perez', '54-11-4555-1232', 1665,1)
INSERT INTO CLIENTES (NOMBRE, APELLIDO, TELEFONO, CP, COD_CLIENTE) VALUES ('Joao', 'Dos Santos', '55-11-5444-0909', 1000,2)
INSERT INTO CLIENTES (NOMBRE, APELLIDO, TELEFONO, CP, COD_CLIENTE) VALUES ('Jorge', 'Lario', '598-910-1019', 2000,3)
INSERT INTO CLIENTES (NOMBRE, APELLIDO, TELEFONO, CP, COD_CLIENTE) VALUES ('Paul', 'Kalkbrenner', '345-232-1111', 2233,4)
INSERT INTO CLIENTES (NOMBRE, APELLIDO, TELEFONO, CP, COD_CLIENTE) VALUES ('Miguel', 'Sar', '230-322-9988', 5555,5 )

-- Insertar registros a la tabla Proveedores

INSERT INTO PROVEEDORES (COD_PROVEEDOR, NOMBRE, DIRECCION, TELEFONO, CP) VALUES (1, 'Exedor Chemicals', 'Sarmiento 1233', '54-11-4323-2222', 1665)
INSERT INTO PROVEEDORES (COD_PROVEEDOR, NOMBRE, DIRECCION, TELEFONO, CP) VALUES (2, 'Drogueria Joao Goulart', ' Rua Avelino Duarte 233', '55-11-5323-2222', 1000)
INSERT INTO PROVEEDORES (COD_PROVEEDOR, NOMBRE, DIRECCION, TELEFONO, CP) VALUES (3, 'Insumos Tricolor', 'Avenida 18 de Julio 2010', '598-901-3322', 2000)
INSERT INTO PROVEEDORES (COD_PROVEEDOR, NOMBRE, DIRECCION, TELEFONO, CP) VALUES (4, 'Watergate Chems INC', 'Kraftwerk 1970', '345-232-2000', 2233)
INSERT INTO PROVEEDORES (COD_PROVEEDOR, NOMBRE, DIRECCION, TELEFONO, CP) VALUES (5, 'Farmacos Anibal', 'Pasaje Ortigoza 1023', '230-322-2121', 5555)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema en creacion de base datos por codigo

Publicado por jose (2 intervenciones) el 23/06/2009 23:19:20
Creo que lo mejor es que dividas ese script y lo ejecute por partes, así sabrás que instrucción es la que te da el problema y puedes corregirla. Divide y vencerás, verlo así es toda una odisea. Cuando las instrucciones te vayan funcionando las puedes ir añadiendo al script correcto y cuando termines con la última ya tendrás ese mismo script pero libre de errores.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar