0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
59 Ansichten5 Seiten
El documento proporciona una guía sobre la creación de triggers en SQL Server. Explica que los triggers se pueden crear y administrar desde el Administrador Corporativo y que especifican el nombre, la tabla asociada, el evento que lo dispara (inserción, actualización o borrado) y las acciones programadas. Además, presenta la sintaxis básica para crear triggers e incluye ejemplos como la creación de un trigger para controlar los niveles de empleados al insertar o actualizar registros.
El documento proporciona una guía sobre la creación de triggers en SQL Server. Explica que los triggers se pueden crear y administrar desde el Administrador Corporativo y que especifican el nombre, la tabla asociada, el evento que lo dispara (inserción, actualización o borrado) y las acciones programadas. Además, presenta la sintaxis básica para crear triggers e incluye ejemplos como la creación de un trigger para controlar los niveles de empleados al insertar o actualizar registros.
El documento proporciona una guía sobre la creación de triggers en SQL Server. Explica que los triggers se pueden crear y administrar desde el Administrador Corporativo y que especifican el nombre, la tabla asociada, el evento que lo dispara (inserción, actualización o borrado) y las acciones programadas. Además, presenta la sintaxis básica para crear triggers e incluye ejemplos como la creación de un trigger para controlar los niveles de empleados al insertar o actualizar registros.
Se pueden crear y administrar los desencadenadores de cada tabla desde el Administrador
Corporativo. Para ello, una vez posicionado sobre la tabla en que se quiere crear o modificar un desencadenador, se accede al men pulsando el botn derecho del ratn. De esta forma slo hay que especificar el nombre del desencadenador, la tabla en la que est y sobre la que acta, el motivo por el que se dispara !insercin, actualizacin o borrado", y la secuencia de acciones pro#ramadas. Sintaxis
CREATE TRIGGER nombreDesencadenador ON tabla [WITH ENCRYPTION] { {FOR { [DELETE] [,] [INSERT] [,] [UPDATE] } [WITH APPEND] [NOT FOR REPLICATION] AS instruccinSQL [...n] } | {FOR { [INSERT] [,] [UPDATE] } [WITH APPEND] [NOT FOR REPLICATION] AS { IF UPDATE (columna) [{AND | OR} UPDATE (columna)] [...n] | IF (COLUMNS_UPDATED() {operadorNivelBit} mscaraBitsActuali!ada) { operadorComparacin} mscaraBitsColumna [...n] } instruccinSQL [...n] } }
Ejemplo:
El si!i"#$" %"s"#&'%"#'%() %" "*"+,l( i+,)i+" !# +"#s'*" "# "l &li"#$" &!'#%( 'l!i"# i#$"#$' ')"') ( &'+-i') %'$(s "# l' $'-l' $i$l"s %" l' -'s" %" %'$(s P!-s.
USE ,!-s IF E.ISTS (SELECT #'+" FROM s/s(-*"&$s WHERE #'+" 0 1)"+i#%")1 AND $/," 0 1TR1) DROP TRI22ER )"+i#%") 2O CREATE TRI22ER )"+i#%") ON $i$l"s FOR INSERT3 UPDATE AS RAISERROR (455563 783 75) 2O Otro Ejemplo de un trigger asociado a la tabla employee de la BD Pubs $% &'()C*+$D!,dbo.employee+insupd," $S -&* -.// ')0$- D1&P *1$00)1 dbo.employee+insupd $% &'()C*+$D!,dbo.employee+insupd," $S -&* -.// P1$-* ,222 %A$/)D D1&PP$-0 *1$00)1 dbo.employee+insupd 333, )/S) P1$-* ,222 D1&PP)D *1$00)1 dbo.employee+insupd 333, )-D #o C1)A*) *1$00)1 employee+insupd &- employee %&1 insert, .PDA*) AS 440et the ran#e of level for this 5ob type from the 5obs table. declare 6min+lvl tinyint, 6ma7+lvl tinyint, 6emp+lvl tinyint, 65ob+id smallint select 6min+lvl 8 min+lvl, 6ma7+lvl 8 ma7+lvl, 6emp+lvl 8 i.5ob+lvl, 65ob+id 8 i.5ob+id from employee e, 5obs 5, inserted $ 444 *abla *emporal de S9/ en donde se almacenan los valores a insertar :here e.emp+id 8 i.emp+id A-D i.5ob+id 8 5.5ob+id $% !65ob+id 8 ;" and !6emp+lvl 23 ;<" be#in raiserror !,(ob id ; e7pects the default level of ;<.,,;=,;" 1&//'AC> *1A-SAC*$&- end )/S) $% -&* !6emp+lvl ')*?))- 6min+lvl A-D 6ma7+lvl" be#in raiserror !,*he level for 5ob+id@Ad should be bet:een Ad and Ad.,, ;=, ;, 65ob+id, 6min+lvl, 6ma7+lvl" 1&//'AC> *1A-SAC*$&- end #o $% &'()C*+$D!,dbo.employee+insupd," $S -&* -.// P1$-* ,222 C1)A*)D *1$00)1 dbo.employee+insupd 333, )/S) P1$-* ,222 %A$/)D C1)A*$-0 *1$00)1 dbo.employee+insupd 333, #o Tipo de daos /a inte#ridad es una propiedad bsica de las bases de datos. )l tipo ms bsico de inte#ridad es la definicin del tipos de datos que se puede almacenar en cada columna. )sto no solo restrin#e los BcaracteresB que se pueden almacenar en cada columna, sino que tambiCn proporciona a S9/ Server un conocimiento bsico sobre la semntica de los datos. Se debe seleccionar ciudadosamente los tipos de datos a emplear en una tabla. /os tipos de datos que se seleccionen tienen implicaciones en cuanto a la utilizacin del espacio, el rendimiento, y otras cuestiones relativas a su sistema. S9/ Server permite cambiar los tipos de datos de las tablas e7istentes, siempre que sea posible una conversin implDcita. Tipo de Datos Nombre Caractersticas Caracteres char Longitud fija Caracteres nchar Longitud fija Unicode Caracteres varchar Longitud variable Caracteres nvarchar Longitud variable Unicode Caracteres varbinary Binario Caracteres image Para objetos binarios (como imgenes) de hastas 2 GB or fila Caracteres timestam !ello de tiemo" !#lo uede haber una columna $imestam or tabla" %echa datetime Para almacenar fechas y horas L#gico bit &um'rico int ( byte) rango desde * hasta 2++ &um'rico smallint 2 bytes) rango desde ,-2"./0 hasta -2"./0 &um'rico tinyint 1 bytes) rango desde ,2"(1."10-)/1. hasta 2"(1."10-)/1. &um'rico float hasta (+ d2gitos (,().34-*0 hasta ().34-*0) &um'rico real hasta . d2gitos (,-)1*4-0 hasta -)1*4-0) &um'rico numeric 45acto &um'rico decimal 45acto &um'rico money 0 bytes (,322"--."2*-"/0+"1.. hasta 322"--."2*-"/0+"1..) &um'rico smallmoney 1 bytes (,2(1".10)-/1 hasta 2(1".10)-/1) !u"#io"es De Cade"a Permiten manipular y evaluar cadenas de caracteres, como CEA1, D$%%)1)-C), /)-, /*1$F, 1)P/AC), 1)P/$CA*), 1)G)1S), 1*1$F, SPAC), S*1, etc. Ger e5emplos. $aem%i#as 1ealizan clculos basndose en valores de entrada, y devuelven un valor numCrico como A'S !valor absoluto", C&S !coseno", /&0 !lo#aritmo", P$ !constante pi", P&?)1 !potencia", S91 !raDz cuadrada", etc. Ger e5emplos. !e#&a Permiten realizar operaciones sobre fechas, formatearlas, calcular diferencias de fechas, etc. 0)*DA*), DA*)D$%%, etc. Ger e5emplos. De A'(e'a#i)" Permiten obtener valores a#re#ados en las consultas@ AG0 !media aritmCtica", C&.-* !total de re#istros", FAH !valor m7imo", F$- !valor mDnimo", GA1 !varianza", etc. )5emplos L4&(hola) 1 64PL7C8$4 (hola) -) holaholahola 64946!4(hola) aloh P7( ) -)(1(+ P:;46 (2) -) 0 !<6((/) 1 G4$=8$4( ) fecha de hoy =8$4=7%%(2**(,*-,20 2**(,*1,20) -( Es(u#u(as de P(o'(ama#i)" /os len#ua5es que interactan con sistemas de #estin de bases de datos se suelen clasificar en tres cate#orDas@ Lenguajes de maniulaci#n de datos (=>L) =ata >aniulation Language)" 4stos lenguajes tienen la osibilidad de leer y maniular los datos" 4jemlos de instaucciones de este tio son !4L4C$) 7&!46$) =4L4$4 y UP=8$4) vistas en las lecciones anteriores" Lenguajes de definici#n de datos (==L) =ata =efinition Language)" !irven ara crear y modificar las estructuras de almacenamiento" 4jemlo ser2a las instrucci#n C648$4 $8BL4" Lenguajes de control de datos (=CL) =ata Control Language)" Permiten definir ermisos ara el acceso a datos) como G68&$) 649:?4) etc" Pero adems *4S9/ que es el len#ua5e propio de S9/ Server, incluye otras instrucciones que pueden resultar tiles, y que permiten pro#ramar procedimientos almacenados. )stas instrucciones, y las estructuras que permiten construir, se presentan a continuacin. I! *** ELSE Admite una e7presin booleana que puede ser evaluada para proporcionar un valor true o false. )s decir, en caso de que se cumpla una condicin, se e5ecutarn una seried e acciones. )n caso en que no se cumpla esa condicin se e5ecutarn otro con5unto de acciones u operaciones. +,ILE- BREA.- C/NTINUE /a instruccin ?E$/) permite e5ecutar un bucle mientras una determinada e7presin contine siendo verdadera. '1)A> hace que se sal#a del bucle ?E$/), mientras que C&-*$-.) para incondicionalmente la e5ecucin y evala de nuevo la e7presin.. RETURN Se emplea para parar la e5ecucin del pro#rama y por tanto del procedimiento almacenado y del desencadenador. G/T/ ISD, e7iste una instruccin 0&*& en *ransac4S9/J. )fecta un salto a una etiqueta determinada. )s til en la #estin de errores. +AIT!/R Puede utilizarse para detener la e5ecucin durante un retardo determinado !?A$*%&1 D)/AK" o hasta un instante espoecificado !?A$*%&1 *$F)". E0ECUTE )5ecuta procedimientos almacenados.
Come"a(ios Cualquiera que haya tenido que revisar o modificar al#n fra#mento de cdi#o estar de acuerdo en la importancia que tienen los comentarios. $ncluso aunque parezca obvio quC es lo que hace el cdi#o cuando se est escribiendo, el si#nificado no ser probablemente tan obvio, ni siquiera para su autor, pasado al#n tiempo. Cuando S9/ Server encuentra un comentario, no e5ecuta nada hasta el final del mismo. S9/ Server admite dos tipos de marcador de comentario@ 12 Come"a(ios 21 )stos marcadores son tiles para escribir comentarios de varias lDneas. )l te7to contenido entre el principio !LM" y fin !ML" de comentario, no ser analizado sintcticamente, compilado, ni e5ecutado. Para los comentarios ms cortos se puede utilizar -- Come"a(ios S9/ Server no e5ecutar el te7to situado a continuacin de los marcadores y hasta el final de la lDnea.