none
Ayuda con este Codigo RRS feed

  • Pregunta

  • Buenas noches ya empece con T SQL, me gustaria saber si esta bien este codigo gracias.

    CREATE DATABASE MiniSuper;

    USE MiniSuper;

    CREATE TABLE Producto(
    idproducto INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
    valor MONEY NOT NULL,
    marca NVARCHAR (100),
    sotck INT NOT NULL 
    );

    CREATE TABLE Empleado(
    idempleado VARCHAR(20) NOT NULL PRIMARY KEY,
    enombre VARCHAR(200) NOT NULL
    );


    CREATE TABLE Cliente(
    idcliente VARCHAR(20) NOT NULL PRIMARY KEY,
    cnombre VARCHAR(200) NOT NULL,

    CREATE TABLE Venta( 
    idVenta INT IDENTITY (1,1) PRIMARY KEY,
    FOREIGN KEY (Empleado) REFERENCES Empleado (idempleado),
    FOREIGN KEY (Cliente) REFERENCES Cliente (idcliente),
    FechaVenta DATETIME NOT NULL DEFAULT GETDATE()
    );

    CREATE TABLE DetalleVenta( 
    idVenta INT IDENTITY (1,1) PRIMARY KEY,
    FOREIGN KEY (Venta) REFERENCES Venta (idVenta),
    FOREIGN KEY (Producto) REFERENCES Producto (idproducto),
    cantidad INT NOT NULL
    );
    GO


    Louis Jhosimar

    miércoles, 15 de agosto de 2018 5:05

Respuestas

  • Hola Jhosibr:

    Te pongo alguna pequeña matización sobre lo que planteas:

    CREATE DATABASE MiniSuper;
    go
     USE MiniSuper
     go
    
     CREATE TABLE Producto(
     idproducto INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
     valor MONEY NOT NULL,
     marca NVARCHAR (100),
     sotck INT NOT NULL 
     );
    
     CREATE TABLE Empleado(
     idempleado VARCHAR(20) NOT NULL PRIMARY KEY,
     enombre VARCHAR(200) NOT NULL
     );
    
    
     CREATE TABLE Cliente(
     idcliente VARCHAR(20) NOT NULL PRIMARY KEY,
     cnombre VARCHAR(200) NOT NULL/* cerrar sentencia */
     );
     go 
     
     CREATE TABLE Venta( 
     idVenta INT IDENTITY (1,1) PRIMARY KEY,
     Empleado VARCHAR(20),
     Cliente VARCHAR(20),
     FechaVenta DATETIME NOT NULL DEFAULT GETDATE());
     go
     /* Te separo las foreign keys para darles tratamiento cuando la clave primaria de la tabla relacionada cambie */
     alter table Venta 
     add FOREIGN KEY (Empleado) REFERENCES Empleado (idempleado)
     on update cascade;
     go
     alter table Venta
     add FOREIGN KEY (Cliente) REFERENCES Cliente (idcliente)
     on update cascade
     go
     
     CREATE TABLE DetalleVenta( 
     idVenta INT, /*normalmente una venta depende de su cabecera, por tanto no es identitaria */
     Linea int, /* se genera una linea nueva para cada detalle de la venta */
     /*Para definir una foreign key, hace falta incluir el campo */
     Producto INT NOT NULL,
     cantidad INT NOT NULL,
     primary key (idVenta, Linea))
     go
     alter table DetalleVenta 
     add FOREIGN KEY (idVenta) REFERENCES Venta (idVenta)
     on update cascade
     on delete cascade
     go
     alter table DetalleVenta
     add FOREIGN KEY (Producto) REFERENCES Producto (idproducto)
     on update cascade
     on delete cascade;
     go
    
     
     

    Espero te ayude.

    Un saludo

    miércoles, 15 de agosto de 2018 7:49

Todas las respuestas

  • Hola Jhosibr:

    Te pongo alguna pequeña matización sobre lo que planteas:

    CREATE DATABASE MiniSuper;
    go
     USE MiniSuper
     go
    
     CREATE TABLE Producto(
     idproducto INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
     valor MONEY NOT NULL,
     marca NVARCHAR (100),
     sotck INT NOT NULL 
     );
    
     CREATE TABLE Empleado(
     idempleado VARCHAR(20) NOT NULL PRIMARY KEY,
     enombre VARCHAR(200) NOT NULL
     );
    
    
     CREATE TABLE Cliente(
     idcliente VARCHAR(20) NOT NULL PRIMARY KEY,
     cnombre VARCHAR(200) NOT NULL/* cerrar sentencia */
     );
     go 
     
     CREATE TABLE Venta( 
     idVenta INT IDENTITY (1,1) PRIMARY KEY,
     Empleado VARCHAR(20),
     Cliente VARCHAR(20),
     FechaVenta DATETIME NOT NULL DEFAULT GETDATE());
     go
     /* Te separo las foreign keys para darles tratamiento cuando la clave primaria de la tabla relacionada cambie */
     alter table Venta 
     add FOREIGN KEY (Empleado) REFERENCES Empleado (idempleado)
     on update cascade;
     go
     alter table Venta
     add FOREIGN KEY (Cliente) REFERENCES Cliente (idcliente)
     on update cascade
     go
     
     CREATE TABLE DetalleVenta( 
     idVenta INT, /*normalmente una venta depende de su cabecera, por tanto no es identitaria */
     Linea int, /* se genera una linea nueva para cada detalle de la venta */
     /*Para definir una foreign key, hace falta incluir el campo */
     Producto INT NOT NULL,
     cantidad INT NOT NULL,
     primary key (idVenta, Linea))
     go
     alter table DetalleVenta 
     add FOREIGN KEY (idVenta) REFERENCES Venta (idVenta)
     on update cascade
     on delete cascade
     go
     alter table DetalleVenta
     add FOREIGN KEY (Producto) REFERENCES Producto (idproducto)
     on update cascade
     on delete cascade;
     go
    
     
     

    Espero te ayude.

    Un saludo

    miércoles, 15 de agosto de 2018 7:49
  • si gracias estoy empezando y me sirvio mucho ya entiendo mas tenia unas dudas ya me quedo mas claro

    Louis Jhosimar

    miércoles, 15 de agosto de 2018 13:38