Codigo Fuente SQL Server

Nombre de las tablas de su base de datos .

Bien, aqui les dejo un pequeño codigo para saber el nombre de las tablas de su base de datos....

 

select *from sysobjects where xtype ='u'

 

Hola, quizas muchos se preguntaran el como se crea un trigger y como se usa. Bien yo les comentare para que sirve y como se usa....

 

Triggers.

Un trigger es una clase especial de procedimiento almacenado. Trigger significa disparador, es decir, es un procedimiento almacenado que se ejecuta cuando sucede un evento específico, tal como una instrucción insert, update o un delete.

  

Un Trigger sirve para mantener la integridad y la coherencia de nuestra información de manera independiente a la aplicación.

Con esto evitamos que el programador codifique una y otra vez rutinas para la validación de datos y así, simplemente, mandamos ejecutar una transacción y verificamos el resultado de la misma.

 

Les colocare un ejemplo de la estructura y le dire cual es su funcion.

 

CREATE TRIGGER Nombre_trigger
ON nombre_tabla
FOR INSERT AS
--Despues del for hago referencia especificamente a una palabra clave, sin embargo se pueden usar (INSERT | UPDATE | DELETE) separado de una coma
 

print 'Realizaste una operacion insert'

 

-- lo que se coloca aqui es una instruccion, o bien puedes colocar alguna operacion que desees que se ejecute, recuerda esto se ejecutara automaticamente cuando, se realice la operacion de la palabra clave(insert,update o delete) de la tabla (ON Nombre_tabla) que hiciste referencia.

 

Es un ejemplo sencillo, pero considero basico para poder iniciar la utilizacion de los trigger.

Las acciones del trigger especificadas en la sentencia SQL tendrán efecto cuando el usuario intente efectuar un INSERT, DELETE o UPDATE. Si son especificadas en el trigger múltiples acciones, deberán estar agrupadas entre un BEGIN y un END.

 

 http://rt000z51.eresmas.net/documentos/trigger.html

 

 Crear Tablas, Vistas y Triggers.

 

-- Hola Aqui les dejo un query donde se realizan diferentes operaciones, espero que les sea de utilidad. No le dare detalle de lo que se realiza en cada una de las operaciones ya que seria  explicar mucho codigo.
-- lo que les puedo de decir es que se 
--CREAN TABLAS- CON(LLAVES PRIMARIAS,FORANEAS,CAMPOS NULL,NOT NULL, IDENTYTY)
--SE CREAN VISTAS
-- SE CREAN TRIGGER
--SE INSERTA INFORMACION
--REALIZAN SELECT
-- ELIMINAN TODO LO QUE SE HA CREADO
-- LA UNICA TAREA QUE TIENE ES ENTENDER BIEN COMO ES QUE FUNCIONA YA QUE LA ESTRUCTURA Y LA FORMA DE USO YA ESTA PLANTEADA Y PROBADA.
--SALUDOS!!!!!

--======== CREACION DE TABLAS =============

 

create table TIPO_ASIGNATURA (
codi int primary key,
nombre char (20) not null)
go
create table TIPO_INSCRIPCION (
codi int primary key,
nombre char (30) not null)
go
create table TIPO_OPERACION (
codi int primary key,
nombre char (30) not null)
go
create table ESTUDIANTE (
codi int primary key,
nombre char (30) not null,
direccion char (30) not null,
telefono decimal (7) default null null)
go
create table ASIGNATURA (
codi int primary key,
nombre char (30) not null,
horas_semana int not null check (horas_semana between 2 and 24),
tipo int not null references TIPO_ASIGNATURA)
go
create table INSCRIPCION (
estudiante int references ESTUDIANTE,
asignatura int references ASIGNATURA,
nota int default null null check (nota between 0 and 50),
tipo int not null references TIPO_INSCRIPCION,
primary key (estudiante,asignatura))
go
create table BITACORA (
secuencial numeric (10, 0) identity primary key,
usuario char (30) default user not null,
fecha datetime default getdate() not null,
estudiante int default null null references ESTUDIANTE,
asignatura int default null null references ASIGNATURA,
operacion int not null references TIPO_OPERACION,
comentario varchar(30) default "Operación exitosa")
go
--======== CREACION DE VISTAS =============
create view MATERIA as select * from ASIGNATURA
go
/* Vista que le muestra al usuario propietario de la cuenta
la información que manipuló de los registros de inscripciones
*/
create view SOBRE_INSCRIPCION (usuario, fecha, estudiante, asignatura,
operacion, comentario) as
select l.name, b.fecha, e.nombre, a.nombre, t.nombre,
b.comentario
from ASIGNATURA a, BITACORA b, ESTUDIANTE e,
master..sysxlogins l, TIPO_OPERACION t
where suser_id() = l.sid and
b.estudiante = e.codi and
b.asignatura = a.codi and
b.operacion = t.codi
go
/* De manera similar crear vistas para INFORMAR a los
usuarios finales (presentación sin códigos) sobre:
- Las asignatura que manipuló,
- Los estudiante que manipuló,
- TODA la información por él manipulada,
- Los registros manipulados por un determinado usuario
(total o discriminada),
- Toda la información manipulada por TODOS los usuarios,
con base en la información almacenada en la tabla BITACORA */

 

--======== CREACION DE TRIGGERS =============


create trigger i_asignatura on ASIGNATURA for insert as
declare @mat int
select @mat = codi from inserted
insert BITACORA (asignatura, operacion)
values (@mat, 1)
go
create trigger d_asignatura on ASIGNATURA for delete as
declare @mat int
select @mat = codi from deleted
insert BITACORA (asignatura, operacion)
values (@mat, 2)
go
create trigger u_asignatura on ASIGNATURA for update as
declare @mat int
select @mat = codi from inserted
insert BITACORA (asignatura, operacion)
values (@mat, 3)
go
create trigger i_estudiante on ESTUDIANTE for insert as
declare @est int
select @est = codi from inserted
insert BITACORA (estudiante, operacion)
values (@est, 4)
go
create trigger d_estudiante on ESTUDIANTE for delete as
declare @est int
select @est = codi from deleted
insert BITACORA (estudiante, operacion)
values (@est, 5)
go
create trigger u_estudiante on ESTUDIANTE for update as
declare @est int
select @est = codi from inserted
insert BITACORA (estudiante, operacion)
values (@est, 6)
go
create trigger i_inscripcion on INSCRIPCION for insert as
declare @est int, @mat int
select @est = estudiante, @mat = asignatura from inserted
insert BITACORA (estudiante, asignatura, operacion)
values (@est, @mat, 7)
go
create trigger d_inscripcion on INSCRIPCION for delete as
declare @est int, @mat int
select @est = estudiante, @mat = asignatura from deleted
insert BITACORA (estudiante, asignatura, operacion)
values (@est, @mat, 8)
go
create trigger u_inscripcion on INSCRIPCION for update as
declare @est int, @mat int
select @est = estudiante, @mat = asignatura from inserted
insert BITACORA (estudiante, asignatura, operacion)
values (@est, @mat, 9)
go
--========  INSERCION DE DATOS =============


insert TIPO_INSCRIPCION values (1, "Normal")
insert TIPO_INSCRIPCION values (2, "Validación por Suficiencia")
insert TIPO_INSCRIPCION values (3, "Validación por Materia Perdida")
insert TIPO_INSCRIPCION values (4, "Validación por Traslado")
go
insert TIPO_ASIGNATURA values (1, "Teórica")
insert TIPO_ASIGNATURA values (2, "Práctica")
insert TIPO_ASIGNATURA values (3, "Teórico-Práctica")
insert TIPO_ASIGNATURA values (4, "Grado")
go
insert TIPO_OPERACION values (1, "Adición de Asignatura")
insert TIPO_OPERACION values (2, "Retiro de Asignatura")
insert TIPO_OPERACION values (3, "Actualización de Asignatura")
insert TIPO_OPERACION values (4, "Adición de Estudiante")
insert TIPO_OPERACION values (5, "Retiro de Estudiante")
insert TIPO_OPERACION values (6, "Actualización de Estudiante")
insert TIPO_OPERACION values (7, "Adición de Inscripción")
insert TIPO_OPERACION values (8, "Retiro de Inscripción")
insert TIPO_OPERACION values (9, "Actualización de Inscripción")
go
insert ASIGNATURA values (25110, "Programación",4,3)
insert ASIGNATURA values (25411, "Base de Datos",4,3)
insert ASIGNATURA values (13333, "Cálculo",6,1)
insert ASIGNATURA values (15555, "Física",6,1)
insert ASIGNATURA values (25222, "Sistemas Distribuidos",4,3)
go
insert ESTUDIANTE values (251122,"Juan López","Calle Carrera",3333333)
insert ESTUDIANTE values (252235,"Lya Castro","Carrera Calle",2222222)
insert ESTUDIANTE values (253351,"Pedro Patiño","Diagonal Calle",1111111)
insert ESTUDIANTE values (254444,"Pablo Xie","Avenida Carrera",7777777)
insert ESTUDIANTE values (255500,"Jae Garcia","Transversal Calle",8888888)
go
insert INSCRIPCION (estudiante,asignatura,tipo) values (251122,25110,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (251122,25411,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (251122,13333,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (251122,15555,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (252235,25222,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (252235,15555,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (252235,13333,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (252235,25411,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (253351,25110,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (253351,13333,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (253351,25222,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (254444,25411,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (254444,13333,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (254444,15555,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (255500,13333,1)
insert INSCRIPCION (estudiante,asignatura,tipo) values (255500,15555,1)
go

/* Sección para comprobación */
--==== CONSULTA DE LA INFORMACION INSERTADA Y DE LAS VISTAS =====
select * from TIPO_INSCRIPCION
select * from TIPO_ASIGNATURA
select * from TIPO_OPERACION
select * from ESTUDIANTE
select * from ASIGNATURA
select * from INSCRIPCION
select * from BITACORA
select * from MATERIA
select * from SOBRE_INSCRIPCION
go

--======== ELIMINACION DE LAS VISTA Y LAS TABLAS CREADAS===========
drop view SOBRE_INSCRIPCION
drop view MATERIA
drop table BITACORA
drop table INSCRIPCION
drop table ASIGNATURA
drop table ESTUDIANTE
drop table TIPO_OPERACION
drop table TIPO_INSCRIPCION
drop table TIPO_ASIGNATURA

 

 


Aviso legal | Política de privacidad | Mapa del sitio
© Derechos Reservados a todas las personas que hace posible, que este espacio sea lo que es.