Hola, estoy practicando con este lenguaje pero no me anda el "AUTO_INCREMENT", me da error en la linea marcada.
CREATE TABLE clientes
(
id_cliente int NOT NULL AUTO_INCREMENT PRIMARY KEY, /*Aqui me da error*/
nombre text NOT NULL
)
CREATE TABLE articulos
(
id_articulo int NOT NULL PRIMARY KEY,
nombre text NOT NULL
)
CREATE TABLE ventas
(
id_venta int NOT NULL PRIMARY KEY,
id_cliente int NOT NULL FOREIGN KEY(id_cliente) REFERENCES clientes(id_cliente),
cantidad int NOT NULL, /*La cantidad de unidades de ese articulo*/
id_articulo int NOT NULL FOREIGN KEY (id_articulo) REFERENCES articulos(id_articulo),
precio_unitario real NOT NULL,
precio_total real NOT NULL
)
Otra duda, en caso de que anduviera en auto increment, al realizar el inserte solo se le pasa un parametro a la parte de values ?
Intentá Así:
SQL Server 2008CREATE TABLE dbo.Clientes (
[Id_Cliente] [Int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[Nombre] [Text] NOT NULL
)
GO
Cita de: nico56 en 24 Diciembre 2009, 18:46 PMOtra duda, en caso de que anduviera en auto increment, al realizar el inserte solo se le pasa un parametro a la parte de values ?
Simon! Cuando es un
Identity, No es necesario pasarle un valor dentro del INSERT, En esté caso solo le pasas el valor de Nombre... :D
Saludos!
Perfecto, muschas gracias pero sabes si se pueden poner expresiones aritmeticas dentro del "INSERT", por ejemplo el campo de la tabla ventas llamado "precio_total", es la multiplicacion del campo "cantidad" y "precio_unitario", eso se especifica en la tabla o en el "INSERT" ?
Para eso Crearemos un Store Procedure, aunque tambien se puede crear dentro de un SELECT o INSERT o lo que sea, solo que me gustan más los Store Procedure. Por Ejemplo:
Tabla: TblProcesos (Tabla donde se almacena los resultados de Suma, Resta, Multiplicación y División)
CREATE TABLE [dbo].[TblProcesos](
[Id] [int] NOT NULL PRIMARY KEY,
[Suma] [varchar](50) NOT NULL,
[Resta] [varchar](50) NOT NULL,
[Multiplicacion] [varchar](50) NOT NULL,
[Division] [varchar](50) NOT NULL
)
Store Procedure: StProcesos (Procedimiento Almacenado para realizar las operacion y la insercion dentro de la tabla de TblProcesos)
-- =============================================
-- Author: < Shell Root >
-- Create date: < 24/12/2009 >
-- Description: < Procesos e Inserción >
-- =============================================
CREATE PROCEDURE StProcesos(
-- Parametros
@Numero1 AS INT,
@Numero2 AS INT
)
AS
BEGIN
SET NOCOUNT ON;
-- Variables
DECLARE @Suma AS INT
DECLARE @Resta AS INT
DECLARE @Multiplicacion AS INT
DECLARE @Division AS INT
-- Procesos
SET @Suma = @Numero1 + @Numero2
SET @Resta = @Numero1 - @Numero2
SET @Multiplicacion = @Numero1 * @Numero2
SET @Division = @Numero1 / @Numero2
-- Inserción
INSERT INTO TblProcesos(Suma, Resta, Multiplicacion, Division)
VALUES (@Suma,@Resta,@Multiplicacion,@Division)
END
GO
Ejecución:
EXEC dbo.StProcesos 3,1
Resultado:
1 4 2 3 3
NULL NULL NULL NULL NULL
Saludos!
MMM la verdad que no entendi, podrias ponerlo como se hace en el insert? Yo imaginaba algo mas simple como esto por ejemplo:
insert into ventas values (1,1,5,1,45.90,45.90*5)
Cita de: nico56 en 25 Diciembre 2009, 01:40 AM
MMM la verdad que no entendi, podrias ponerlo como se hace en el insert? Yo imaginaba algo mas simple como esto por ejemplo:
insert into ventas values (1,1,5,1,45.90,45.90*5)
Claro, es simple.
Insert:INSERT INTO TblProcesos (Suma, Resta, Multiplicacion, Division)
VALUES (10 + 2, 2 - 1, 2 * 2, 6 / 2)
Resultado:2 12 1 4 3
Saludos!