Otros Datos

//Crear una base de datos desde query:

create database VENTAS2 on primary
(
name = VENTAS2_data,
filename = 'c:\VENTAS2.mdf',
size =5mb,
maxsize =10mb,
filegrowth=1mb
)
LOG ON
(
name = VENTAS2_log,
filename = 'c:\VENTAS2.ldf',
size = 5mb,
maxsize =10mb,
filegrowth=1mb
)

//ELIMINAR UNA BASE DE DATOS

drop database VENTAS2

//CREAR UNA TABLA EN LA BASE DE DATOS SQL
//para crear la tabla cliente debemos seleccionar la base de datos ventas y no asi la master

create table login
(
id_login int identity(1,1)not null,
id_persona int not null,
id_rol int not null,
fechareg date not null,
usuario nvarchar(50) not null,
password nvarchar(50) not null
PRIMARY KEY(id_login)
foreign key(id_rol) references rol (id_rol)
)

//ELIMINAR LA TABLA CLIENTE

drop table CLIENTE

//INSERTAR EN LAS TABLAS

INSERT INTO CLIENTE
VALUES(1,'Diego','dieguito_alcoba@hotmail.com','6137432',300)
INSERT INTO CLIENTE
VALUES(2,'Mauricio','oscarmaoal@hotmail.com','6137432',500)
INSERT INTO CLIENTE
VALUES(3,'Andrea','andrea_alcoba@hotmail.com','6137432',300)
INSERT INTO CLIENTE
VALUES(4,'Jaime','jaime_alcoba@hotmail.com','6137432',300)
INSERT INTO CLIENTE
VALUES(5,'Lilian','lilian_alcoba@hotmail.com','6137432',300)

//MOSTRAR LA TABLA

SELECT * FROM CLIENTE

//ACTUALIZAR CAMPOS DE LA TABLA

UPDATE CLIENTE SET CI='4444'
WHERE NUMCLI=3

//ELIMINAR DATOS DE UNA TABLA

DELETE CLIENTE WHERE NUMCLI=5

//ELIMINAR TODOS LOS DATOS DE LA TABLA

DELETE CLIENTE

//AÑADIR UNA COLUMNA TELEFONO

ALTER TABLE CLIENTE ADD TELF NVARCHAR(50) NULL

//ELIMINAR UNA COLUMNA

ALTER TABLE CLIENTE DROP COLUMN E_MAIL

//OTRAS SENTENCIAS SQL

select * from CLIENTE
WHERE NOMCLI LIKE 'DIEGO%'

select * from CLIENTE
WHERE NOMCLI LIKE '%DIEGO%'

//ORDENAR CLIENTES

SELECT * FROM CLIENTE
ORDER BY NOMCLI DESC

//SOUNDEX.- PARA NOMBRES QUE SUENAN DE CIERTA MANERA PERO NO SABEMOS COMO SE ESCRIBEN

SELECT * FROM CLIENTE
WHERE SOUNDEX(NOMCLI)=SOUNDEX('JAME')

// CAMPOS VACIOS

SELECT * FROM CLIENTE
WHERE E_MAIL IS NULL

//CONTAR CLIENTES EN UNA TABLA

SELECT COUNT(NUMCLI) FROM CLIENTE

//SALDO MAYOR A 200

SELECT * FROM CLIENTE
WHERE SALDO > 200

CREATE TRIGGER BCKP
ON NOTAS
AFTER UPDATE
AS
INSERT BCKNOTAS
(NRO_NOTAS,NOTA_FINAL)(SELECT NRO_NOTAS,NOTA_FINAL FROM DELETE)

SELECT E.CI,E.PATERNO,E.NOMBRE, I.OBSERVACIONES,I.FECHA
FROM ESTUDIANTE E INNER JOIN INSCRIPCION I
ON E.NRO_ESTUDIANTE = I.NRO_ESTUDIANTE

CREATE TRIGGER BCK2
ON PROCESO_VENTAS
AFTER UPDATE
AS
INSERT BCKVENTAS
(NRO_ARTICULO,CANTIDAD_ARTICULO)(SELECT NRO_ARTICULO,
(SELECT A.CANTIDAD_ARTICULO - V.CANTIDAD_VENTA AS TOTAL
FROM ARTICULOS A INNER JOIN PROCESO_VENTAS V
ON A.NRO_ARTICULO = V.NRO_ARTICULO WHERE A.NRO_ARTICULO = (SELECT NRO_ARTICULO FROM deleted))
 FROM PROCESO_VENTAS)


------------------------PROCEDIMIENTOS ALACENADOS-----------------------------------------

create procedure listado
as select * from NOTAS
exec listado 

create procedure guardarnota
@NroNota int,@NroInscripcion int,@Nota1 int,@Nota2 int,@NotaFinal int,
@Observaciones nvarchar (50)
as
insert into NOTAS (NRO_NOTAS,NRO_INSCRIPCION,NOTA_1,NOTA_2,NOTA_FINAL,OBSERVACIONES)
values (@NroNota ,@NroInscripcion ,@Nota1 ,@Nota2 ,@NotaFinal, 
@Observaciones)
exec guardarnota 7,3,85,60,75,'Aprobado'

create procedure Actualizar_Estado
@NroNota int,@Observaciones nvarchar (50)
as
update NOTAS 
set OBSERVACIONES = (@Observaciones)
where NRO_NOTAS = @NroNota

exec Actualizar_Estado 1,'Aprobado'

-----------------------------------------------TRANSACCIONES SQL------------------------------------------
BEGIN TRANSACTION
BEGIN TRY
exec Actualizar_Estado 1,'Aprobado'
exec Actualizar_Estado 3,'Reprobado'
exec Actualizar_Estado 4,'Aprobado'
exec Actualizar_Estado 2,'Aprobado'
exec guardarnota 7,3,85,60,75,'Aprobado'
commit transaction
end try
begin catch
rollback transaction
end catch

----------------------------------------------------------CURSORES------------------------------------------------
declare cursorP cursor
for select codigo,producto,precio from productos
open cursorP
declare @cod int,@pro varchar(50),@pre money
fetch next from cursorP into @cod,@pro,@pre
while @@FETCH_STATUS=0
begin
update productos set producto_precio = @pro + ' ' + cast (@pre as varchar (10)) where codigo = @cod 
--print 'codigo: ' + cast (@cod as varchar(10))
--print 'producto: ' + @pro
--print 'precio: ' + cast(@pre as varchar(10))
fetch next from cursorP into @cod,@pro,@pre
end
close cursorP
deallocate cursorP





No hay comentarios.:

Publicar un comentario