You are on page 1of 113
SENATI PROGRAMA NACIONAL DE INFORMATICA Programacion de Base de Datos en SQL Server MANUAL DEL PARTICIPANTE NET Pte Programseién de 80 rsa Sorver SENATI Manual partspane TABLA DE CONTENIDO Capitulot: Creacién de Vistas Introduccion Creackin y manipulaciin de vistas. Creacién de vistas copii informacion on vistas . Tipos de vistas Modifica disefio de las vistas... Eliminacién de vistas Preguntas de repaso. Capitulo 2: Procedi Introduceién. Creectn de procediniontos ainacaradoe. Uso de parémetras con proceckmentos almaconados... Ejecutarprocedimionos almacenados autométcamente al iniciar SQL Server. Uso de procedimientos aimacenados remotos. Preguntas de repaso ;ntos almacenados Capitulo 3: Desencadenadores ‘Trabajo con desencadenadores. CComprensién de las tables inserted y deleted. (reacién de desencadenadores.... Decencedener hserciones y actuatzaciones Desencadenar eliminaciones... Encepsulamiento de les regs de negocbs. Uso de desoncadenadores INSTEAD OF... Recopietin de informactn sobre los devencadenadres.. Preguntas de repaso.. Capitulo. Introducet6n. Funciones eecalres. Funciones de valores de tabla en lin Funciones de valores de tabla de mitiples instrucciones: Preguntas de repaso.. unciones definidas por ol usuario Capitulo 5: Manejo de Transacciones ‘ProgremsNeconaideinbmiies Programacién de BD ‘on SOL Sarver Marval del parkpante a ‘Secuencia de comandos. ‘Transacciones. Tipos de Transacciones. Transacciones explictas La vateble global @@trancount.. ‘Transacciones autométicas. ‘Transacciones implicitas Preguntas de repaso.. Capitulo 6: Herramientas de monitoreo y rendimiento Fundamentos y herramientas de monitoreo del rendimiento Soleccion y optimizacién de hardware. Parémetros de configuracion de Windows 2000. Contadores del monitor de rendimiento de Windows 2000. Configuracion de SQL Server Opciones de procesador Opciones de consultas en paralelo Opciones de configuracién de memoria... Opciones de E'S. Opciones de consulta indice . \Monitoreo del rendimiento de SQL Server Contadores del monitor de rendimiento de SQL Server. et Procedimiantos aimacenados de sistama para 6! monitoreo del rendimiento. La ventana de Actividad actual del Administrador corporativo de SQL... Uso de! Analizador de SQL Server Configurar un registro de auditor... Uso de una raza pera superar el rendimienio m1 1 Asistente para optimizaciin de indices . 72 Preguntas de repaso.. 75 Capitulo 7: Analysis Services Introducetén, Comprensién del almacenamiento de datos . ‘Tablas de hechos Dimensiones. ‘Agregacion Comprensin de los puestos de datos Crvacion de un almacén de datos. CComprensisn de los componentes de Analysis Series... LAP. Mineria de datos. Meta Data Services eu. nnn Instalacion de Analysis Sorvicos Pte Programaciin de BD ‘on SL Server SENATI Manual partspane ‘Acceso a la aplicacion de ejemplo para Analysis Services... Preguntas de repaso... Capitulo 8: Programacién desde el lado del Servidor Introduce. ene Tablas Temporates... Uiiizar tables temporales. Variables. Variables bealos Variables globales.. Variables de Configuractén Variables estadisticas. Variabios dol sistoma .. Ublizar variables Declarar una variable local. Control de ejecucién... Procesamiento Condicio Elcomando GOTO... Bucles.. Cursores de Transact-SQL. Caracteristicas de los cursore: Tos de cursor. Ullizar Cursores: Gearcursores... Manipular fas mediante un cursor . Preguntas de repaso... ‘ProgamaNedonaldeinbeniiee Programackin de 8D rt Tr sat Saver Maral del prkspante SENATI Programe Nacional e homies ww worsens"? SENAT Mana lpr cpanta Capitulo | Creaci6n de Vistas Objetivos: ‘A finalizar este capitulo, el participante tendré conocimientos sobre: ]@ Creacién y manipulacion de vistas. Tipos de vistas. & Eliminacion de vistas. Introduccién La creacién y la manipulacién de vistas le permiten especiicar la manera en que los usuarios voran exactamente los dalos. Puede penser en ellas como si fueran consultas almacenedas, Creacion y manipulacién de vistas Las vistas le permiten dividr en forma horizontal o vertical la informacién de una o més tablas de una base de datos. En ots palabras, con una vista puede permitir que los usuarios vean solo los campos y fas seleccionados, La figura muestra una vista que permite que los usuarios vean solo los campos de apelido y nombre de los aulores (particin Vertical) y solo los autores que tengan un apelido que empiece con la letra M (particion orzontal). ‘uname | autnamo | city | stato | ap |Caloney [Sarah Fresno | CA | 90225 Deitch Pino | Tx | 76503, Dominic Bend oR | 9722 Ferrous ‘Towns | ME | 2566 MecFeather Bowie | TU | 82331 MacDonald London | mo | 85823, [oretand Reno NV | 89509) Spinola Moreno | MN | 73220 ‘Program Neconaldelnemiice Programacisn de 8D rt erat Soo Merial el parante SENATI uname | au_fname MacFeather [Steams MacDonald | Stephani El.c8digo utlizado para crear esta vista podria verse de la siguiente manera: CREATE VIEW dbo. wAutores AS SELECT au. Iname, au_fhame FROM authors WHERE au_Iname LIKE "M36" ‘También pueden crearse vistas para mostrar informacisn derhada, Por ejemplo, puede crear una vista que muastre el apelido, nombre y titulo del fibro de un ‘autor, y luego un campo calculado 0 derivado que muestra el nimero de libros vendidos ‘muttipicado por la cuota de regalias por libro Las vistas también tonen las siguientes ventajas: ‘+ Usted controla lo que los usuarios pueden ver. Esta capacidad es cil tanto por seguridad ‘como por faciidad de uso, Los usuarios no tienen que ver informacion extra que no requieren. ‘+ Puede simplifcar la interfaz do usuario ceando vistas de consultas utlizadas ‘cominmente. Con esta capacidad, los usuarios pueden ejecutar vistas con instrucciones simples, en lugar de toner que proporcionar parémotros cada woz que so ojecute la consutta, ‘+ Las vistas fe permiten establecer la seguridad. Los usuarios pueden controlar s6lo lo que usted les permita ver. Esto podria ser un subconjunto de fas 0 columnas, informacin ‘estadistica 0 un subconjunto de informacién de otra vista ‘+ Puesto que una vista es un objeto de base de datos, puede asignar permisos a un usuario en relacién con la vista. Este mélodo es mucho mas eflcente que colocar los, ‘mismos permisos en oolumnas individuales de una tabla, Ahora pueden crearse indices en las vistas, fo que las convierte en un método increiblementa eficiente para oblener acceso a los dalos solcitados con frecuencia, ‘+ Los datos pueden exportarse desde una vista, utiizando la herramienta BCP (Programa de Copia Masiva).. Las vistas son objetos muy poderosos y dtiles en el disefio de su base de datos. Puede ‘olorgar a los usuarios acceso a ciertas columnes y fias dentro de su tabla, pero una vista es ‘mucho mas facil de mantener que fos parmisos de usuario en columnas individuales; por fo tanto @s el metodo preferide para particionar informacion. Esta también es una consideracién de rendimiento. Al colocar permisos en columns de una tabla, cada vez que se hace referencia a esa tabla por alguna razén, deben comprobarse los permisos en cada columna alla que se hace referencia. Creacién de vistas Puede croar vistas ullizando la herramionta Analizador de consuitas de SQL Server o ol ‘Administrador corporativo de SQL Server. La sintaxis de a instruccién VIEW es la siguiente: Programe Nacional e homies ww worsens"? SENATI Manus! partpan (CREATE VIEW [propitaro] nombre_vista [(nombre_cokurna[,nombr@_cokmna |) [WITH atibutos ‘AS instuccién_select IWITH CHECK OPTION ‘irbutos: (ENCRYPTION | SCHEMABINDING | VIEW_METADATA} Una instrucolén CREATE VIEW simple se ve de la siguiente manera: CREATE VIEW wTodosLosAutores (AS SELECT * FROM authors Puede utiizar esta vista de diversas meneras, como se muestra en los siguientes ejemplos: SELECT * FROM wTodostosAutores. SELECT au_fname, au_Iname FROM wwTodosLosAutores SELECT au_Iname FROM wwTodosLosAutores WHERE au_Iname like 9%" unde especiicar varias opciones en la instruccién CREATE VIEW: WITH CHECK OPTION. WITH ENCRYPTION, WITH SCHEMABINDING y WITH VIEW_METADATA. De manera predoterminada, las modiicaciones de datos reakzadas por medio de una vista no se comprueban para determina sibs fis afoctodas estarén dentro de la definicion de la Vista, En otras palabras, pueden realzarse incerciones y actualizaciones @ la tabla base incliso sila vista no las uti. Por ejemplo, una vista podria paricionar una tabla en forma horizontal y proporcionar sélo Ios registos que tengar el apelido de un eulor que comience con laleta FSi ullizar WITH CHECK OPTION, podria agregar potencialmente un nuevo regkstto que tuvira el apelido Meredith. La opoén WITH CHECK OPTION obliga @ que todas los insirucciones do ‘modifieacin de datos aplicadas a través de la vista utlicon los etorios establecidos con la Instucci6n SELECT que dotin [a vista. La opcén WITH ENCRYPTION cia fa instuccion CREATE VIEW en la tabla de sistema sysoomments. Una vez quo se ofa una defnicion do Vista, no puede ser vista por nadie. La Gnica mansra de descirar una visas quitara y logo volver a crear. Las siguientes vistas de ejamplo se crean con las opciones WITH CHECK OPTION y WITH ENCRYPTION habilladas: CREATE VIEW viMiComprobacion AS select * from authors WITH CHECK OPTION (CREATE VIEW wiMiCifrado WITH ENCRYPTION AS select * from authors Programe Nedoral de nornbica Programacisn de 8D rt erat Soo Manual del parkdpante SENATI Cucndo cree visas siompre debe probar la insiruociin SELECT ants de inckira en una isla. De osta manera puede evil resultados inesperacos. Por ejampl, puede crear una Visla que dewela todas los fias de su taba. Le tabla podria toner solo 500 fis al crear su visla. Dos arics después, esa misma tabla podria devoNer 10.000 fias de datos. zSigue siondo esta instuccion SELECT adecuada? Le opelén WITH SCHEMABINOING lo obliga a ulizer nombres compuestos por das partes (propietario objeto) para hacer referencia a las tablas base, vistas 0 UDF a los que se hace referencia en la instruccién SELECT de su vista. Al hacer no puede modificarse ni quiarso ol ‘esquema de esos objotos base, a menos que se quile 0 sa allore la vista Por ejemplo, si crea una vista con base en las columnas au_Iname y au fhare de la tabla authors ublza la opcién WITH SCHEMABINDING, no puede quitar le table euthors. PPrmerotendria que quitarla vista y luego la tabla authors. La opcion VIEW_METADATA especiica que cuando se solcten los metadatos del modo de exploraciin de un clente SQL Server 2000 debe devolver informecén acerca de la vila {(netedeios) en iyger del conjunto de resuitedos de le instucciin SELECT de lp vista. En a ‘actualiiad, as APIs DBLIB y ls biblioteces de OLED soporian esta caracterisica Tenga en cuenta estas reglas y resticciones al cear vst ‘+ Las instrucciones CREATE VIEW no pueden combinarse con otras instrucciones de SQL ‘en un be. ‘+ Alcrear una vista, se comprueba cualquier objeto de base de datos a los que haga refe- rencia la vista en él momento en que ésta se cree. ‘+ Cuando ejacute una vista, debe tener permiso SELECT en los abjetos a los que se hace referencia on la defnicién de la vista, a menos que los objetos no tengan un propietario especticado. Esto signfica que usted podria crear potencialmente una vista que no pueda ejecutarse. Los permisos an las vislas se comprueban cada vez que se ejecute la Vista y no cuando se crean. ‘+ No puede incluir dentro de une vista les ckéusulas ORDER BY, COMPUTE ni COMPUTE BY de su instruccién SELECT. ‘© Si quita objetos a fos que se haga referencia dentro de una vista (@ menos que haya ‘especiicado la opcion WITH SCHEMABINDING). la vista no se elimina. Recibiré un ‘mensaje de error a siguiente vez que trate de uliizar esa vista, or ejemplo, si crea una vista combinando informacion de dos tablas baso y luego quita luna de las tablas, fa vista no se elimina, pero no puede ejecutarse. Para eviar este problema, utlice ol procedimiento almacenado de sistema sp_depends para ver qué objotos dependientes tone ia tabla antes de quitara, ‘+ No puede hacer referencia a tabias temporales en una vista. Eslo también significa que 10 puede utllizar una ciusula SELECT INTO en una Vista, ‘© Sisu vista utliza una instruccién SELECT * y se agregan columnas en la tabla base a la {que se hace referencia en la instruccién SELECT, las nuevas columnas no aparecen en ‘a vista. EI * se roemplaza al momenio de su creacién por una lista fja de columnas. Debe allerarla vista para incluir las columnas recién agregadas. ‘© Sicrea una vista hija basada en una vista madre. Tenga culdado de lo que hace la vista ‘madre. Podtia toparse con problemas si esta ultima os grande y compleja, ‘+ Los datos no se guardan por separado en una vista. Esto significa que si modifica los datos en una vista, esta modificando los datos de las tablas base. ‘+ No puede hacer referencia a més de 1,024 columnas en una vista. ‘+ Debe especificarlos nombres para todas las columnas derivadas en su vista. Programe Nacional e homies Rocopllar informacién on vistas Para obtener el texto utlizado en Ia instuccién CREATE VIEW, puode utlizar ol ‘Administrador corporalivo de SQL Server, 0 ejecutar el procedimianto aimacenado de sistema sp_helplext y pasar el nombre de la vista como parametro: sp_helptext wiMiComprobacion (CREATE VIEW vwMiComprobacion AS SELECT * FROM authors WITH CHECK OPTION Si ejecuta Sp_dopends en le vista anterior, obtendra lo siguiente: EXEC sp_depends vwMiComprobacion En la base de datos actual, el objeto especiicada hace las siguientes referencias: Name type update selected column dbo authors user table 0 yes auld dbo.authors user table 0 yes au_hname dbo authors user table 0 yes ‘au_fname dbo.suthors user table 10 yes phone dbo.authors user table 0 yes address dbo authors user table 0 yes. oly dbo.authors user table 0 yes. state dbo.authors user table 0 yes: zp dbo authors user table 10 yes contact También puede consultar las siguientes tablas del sistema para recopilar Informacion acerca de una vista: ‘+ syscolumns devuelve las columnas definidas dentro de una vista. ‘© syscomments devuelve el texto de la instruccién CREATE VIEW. ‘+ sysdeponds devuelve las dependencias de la vista. + sysobjects devuelve el nombre de la vista. Tipos de vistas Cada tipo distinto de vista depende del tipo de insttucciin SELECT utiizada para crearla ‘Ahora veamos mas detalladamente las _proyecciones, combinaciones, agregados, ‘columnas calculadas y vistas basadas an otras vistas. Vistas de proyeccién El tipo mas simple de vista se conoce cémo proyeccién. Una proyeccién es simplemente tun subcorjunto de columnas de una tabla: CREATE VIEW wwMiVista ‘AS SELECT au_Ineme, au_fname FROM authors ‘Programs Neconaldelnomiice Programacién de BD rt Tr sat Saver Marl et parkipant SENATI Para trabajar con la vista recién croada utlice la siguiente instruccién’ SELECT * FROM vwMiVista ‘au_fnamo au_Iname Bennet ‘Abraham Blotchet Halls, Reginald Carson Chery DeFrance Michel ol Castilo. Innes Dull Ann Green Marjorie bel Lol White Johnson Yokomoto Akiko (23 flas atectadas) Vistas de combinacion Las combinaciones vinculan filas de dos o més tablas mediante la comparacién de valores on las columnas especificadas. Por ejemplo, tal voz usted quiora dar a los Usuarios una lista de autores de la tabla authors y los titulos de los libros que han escito de la tabla tities. Estas dos tablas tionen una rolacién de varios a varios en la base de datos pubs, y por lo tanto ultlizan la tabla titeauthor para crear dos relaciones de uno a varios, como se muestra en la figura. Authors fitleauthor titles: au_id au_id title_id au_iname title_id title ay_fname au_ord phone royaltyper address aty state zip contract Programe Nacional e homies wr SENAT Puede escribir una combinacién para recopllar datos de las tablas authors, titles y tileauthor, pero es mucho mas eficiente crear una vista, como se muestra a continuacién. CREATE VIEW vwAutoresTitulos [AS SELECT authors, au_Iname, authors.au_Mmame, titles.tide FROM authors INNER JOIN titleauthor ON authors.au_id = titleautor.au_id INNER JOIN titles (ON titles.title_id = titleauthor.title_id Luego ejecute lo siguiente para mostrarel apelido, nombre y titulo de cualquier libro que hayan escrito todos los autores con un apellido que empiece con la letra M SELECT + FROM vwAutoresTitulos WHERE au_Iname like "M%' au_Iname au_fame Title MacFesther Stearns Cooking with Computers: MacFoathor Stearns ‘Computer Phobie AND Non-Phobic.. (@ files afectadas) Otros tipos de vistas ‘También puede crear vistas ulilizando funciones de agregado, columnas calculadas y Vistas basadas en otras vistas. Los agregados ulilizan funciones de agregado tales como AVG, COUNT y SUM. Puede ullizar columnas calculadas para crear datos de resumen para sus usuarios. Puede utilizar una vista para refinar ain mas la vista original. Por ‘ejemplo su vista original podria proporcionarle informacién sobre todos los productos con sus precios corespondientes y la cantidad vendida. Puede crear una nueva vista a partir de 9sa vista que calcule la multiplicacion de la cantidad por el numero de unidades vendidas para un numero de articulo especitico. CREATE VIEW waLibrosTotales AS SELECT title (price * yid sales) ‘Total’ FRON tities ‘Ahora puede utlizar esta vista para devolver todos los libros de la tabla titles con una ‘columna tlamada Total, la cual muestra el precio muttiplicado por las ventas anuales del afio en curso, Select * from vvLibrosTotales title Total ‘The Busy Executive's Database Guide 81,859.05 ‘Cooking with Computars: Surreptitis Balance .. 6318.20 You can combat computer stress! 5978.78 straight Talk About Computers 81,859.05 silicon Valley Gastronomic Treats 061968 ‘Programs Neconaldelnomiice mre” Pe Maral dl print SENATI “The Gourmet Mctowave es1554 ‘The Psychology of computer Cooking (ou) te] Ld Fity Year in Buckingham Palace Kichons 180,397.20, Sushi Anyone? 61,984.05 (18 Mas afoctodas) Modificar datos en la vista Usted puede modiiicar datos en una vista. Recuerde que al modificar datos en una vista se ‘modifican los datos de las lables en las que se basa la vista. Cuando se modifican dalos través de una vista no indizada y/o una vista no particionada se aplican a varias reglas: ‘+ Las modificaciones no pueden afectar a mas de una tabla. Si su vista combina datos de una o mas tablas, puede modificar sélo los datos de una de las tablas base. + Puede modificar datos sélo de una tabla base, asi que no puede alterar los agregados, las columnas calculadas ni las columnas con funciones integradas. ‘+ Siutliza la opcién WITH CHECK al crear o alterar sus vistas, todos los datos que van a insertarse 0 2 modificarse a través de la vista deben someterse a las restricciones de la instruccién SELECT utilizada para crear la vista Por ejemplo, si su instruccién SELECT tione una cléusula WHERE au_Inamo LIKE 'M%", puede agregar 0 modificar flas que se ajusten sélo @ sa clausula WHERE, ‘+ Las columnas NOT NULL definidas en la tabla base, pero que no formen parte de la vista, también deben tener asignados valores predeterminados para poder insertar luna nueva fila por medio de la vista. ‘+ Sia vista contiane una cldusula UNION, se conoce come visla particionada y no puede utiizarse para inserciones ni para actualizaciones bajo condiciones muy estrictas. Para ‘obtener més informacién, vea el tema Crear y mantener bases de datos de los Libros ‘en pantalla de SQL Server 2000. Modificar disefio de las vistas En SOL Server 2000 puede alterar una vista por medio de la instrucién ALTER VIEW. Su sintaxis ¢s la misma que la utlizada en CREATE VIEW, sblo que se reemplaza CREATE con ALTER. Por lo tanto la sintaxis para la instrucckin ALTER VIEW es como se muestra @ Continuacién ALTER VIEW _[propietario,Jnombre vista [(nombre_columnaf, nombre_columna...])] [WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA }] AS instruccién_select [WITH CHECK OPTION] La ventaja de utilizar ALTER VIEW es que se retisnen todos los permisos que ya han sido ‘asignados a la vista. Si quita y vuelve a crear esta vista, esto no se aplica No obstanie, debe tener an cuenta que si su vista tiene acceso a nuevos objetos que tengan especiicado un pro- pietaro los usuarios que tengan permiso en su vista recién alterada deben tener también los ppermisos apropiados en esos objatos a los que se acaba de hacer referencia, Programe Nacional e homies ww worsens"? SENATI Manus! partspane Eliminaci6n de vistas Para eliminar una vista de su base de datos, seleccione la vista deseada en el Administrador ccorporativo de SQL Server y luego haga clic con el botén derecho del ratén y seleccione la opcién Eliminar. También puede utlizar una instruccién DROP. Esta instruccién ulliza la siguiente sintaxis: DROP VIEW [propietariojombre_vista [,[propietario]nombre_vista..] Para quitar una vista llamada vwMiComprobacion, que tiene como propietatio al dbo. Utlice este codigo: DROP VIEW dbo. wwMiComprobacion Este comando no devuelve datos ni flas. Programe Nedoral de nornbica 8 Programacién de BD won SOL Sarver Marval del parkpante Preguntas de repaso 1. {Qué ventajas tiene utilizar una vista? 2 {Cudles son los tipos de vistas? 3. 4Cémo se modifican los datos desde la vista? 4. {Qué instruccién se utliza para eliminar una vista? Como modificamos el disefio de una vista? Programe Nacional e homies Pte Propramactin de 8 Seat Se SENATI Mara tpn Capitulo 2 Procedimientos almacenados Objetivos: ‘A finalizar este capitulo, el participante tendré conocimientos sobre: ] Creacién de Procedimientos almacenados. Uso de parémetros con procedimientos almacenados, ]% Compilar procedimientos almacenados. Introduccién Los procedimientos slmacenados son insirusclones precompilades da T-SQL alma- ‘conadas en una base de datas de SQL Server. Como los procedimientos son precompliados. Por lo ganeral offecen el mejor rendimiento en cualquier tipo de consulta. Muchos ‘procedimienios almacenados de sistema definidos con sp recopilan informacién de las tablas del sistema y son especialmente dtiles en la administracion. Usted puede crear también sus propios procedimientos aimacenados. .2Por qué son tan maravilosos los procedimientas almacenados? LQué tienen de espacial estos objetos de SAL Server? Los procedimientos almacenades son conjuntos de comandos T-SQL que se ejecutan répidemente y se guardan en una base de dalos de SQL Server. Cuando se elecuta por primera vez un procedimiento almacenado, se llevan a cabo todos los pasos que se muestren 2 continuacién. Luego se coloca en memoria ol plan de consulta del procodimionto ‘almacenado. En las siguientes llamadas al mismo procedimiento almacenado se realiza s6lo ol pasos. 1 Se analizan todas Iss piezas que componen al procedimiento. 2. Se comprueba la existencia de los componentes que hacen referencia a otros objetoe on la base de datos (labas, vistas, etcétera). Este proceso se conoce también como resolucion. 3. El nombre del procedimiento se guarda en la tabla sysobjects. y el cédigo necesario para crear ol procedimiento almacenado se quarda en syscomments. ‘+ El proceso de compilacién continua, durante el cual se crea un plano en el que se indica ‘como ejecutar la consulta. Este plano se conoce cominmenie como plan normalizado o bo! de consulta. Este érbol se guarda en la labia sysprocedures. 5. Cuando el procedimiento almacenado se ojecuta por primera vez, se loe ol arbol do Consulta y se optimiza completamente en un plan del procedimiento y luego se ejecuta Esto le ahorra ol tempo requerido para vover a enalizar, resolver y compllar un &rbol de consulta cada vez que se ejecuta el procedimiento almacenado. (tro beneficio del uso de un procedimianto almacenado ¢s que despuse de ojecutarse, el plan del procedimianto se guarda en la caché de procedimientos. Esto significa que la proxima vez ue lice ese procedimiento aimacenado én la misma sesién, se leera directamente de la Ccaché y se ejecutara, Gracias a ello se obtiene una considerable mejora en el rendimiento, ‘comparacién con ejecutar una y otra vez una consulta esténdar de SQL. Los procedimientos almacenados tienen benefcios adicionales: ‘Programs Neconaldelnomice Programacisn de 8D rt erat Soo Manual del parkdpante SENATI + Puede utilizarlos para encapsular reglas de negocios. Una vez encapsuladas, varias aplicaciones pueden utlizar dichas regias, con lo cual se obtiene una interfaz de datos consistente. Esto también tione la ventaja de que si debe cambiar la funcionalidad, puede ‘camblarse slo en un lugar, en lugar de una vez para cada aplicacin. ‘+ El rencimionto aumonta en todos los procedimiontos almaconados, pero aumenta adn més cen los procedimiontos almacenados que se ejpculan mas de una vez. ya que ol plan de consulta se quarda on la caché de procedimiontos. ‘+ Conlos procedimiantos aimacenados puede pasar arguments y también recibir dato. ‘+ Los procedimientos aimacenados pueden configurarse para ejecutarse aulométicamente al Iniciar SOL Server. ‘+ Los procedimiantos almacenados pusden ullizarse para extraer o modiicar datos (No al ‘mismo tiempo). ‘+ Los procedimiantos almacenados se invocen explictamente. A diferencia de los desencadenadores, los procedimientos almacenados deben ser lamados por su aplicacién, secuencia de comandos, lote o tarea. En general, los procedimientas almacenados son componente de bases de datos poderosos. Los. procedimienlos almacenados de sislema son tles para la administracién y ol ‘mantenimiento de bases de datos. Los procedimisntos almaconados definidos por el usuario son cities en cualquier tarea para la que hayan sido diseftados. Tlenen ventajas sobre las vistas y consultas ya que son precompilades, y después da su primera ejecucin se guarda su plan da ejecuciin en la caché de procedimientos que reside en la RAM (memoria de ‘acceso aleatori). Otro beneficio de fos procedimientos almacenados es que se puede dar ppermiso a un usuario para que ejecute un procedimiento aimacenado, incluso si ese usuario 1 tiane permisos an las tablas involucradas. Creacién de procedimientos almacenados La instruccién CREATE PROCEDURE se ulliza para crear procedimientos almacenados. Estos se crean en la base de dalos actual a menos que este creando procedimientos ‘almacenados tomporales en tempdb, Para crear un procedimiento almacenado debe tener el ppormiso para eecutar la Instucelsn CREATE PROCEDURE. ‘Accontinuacién se muestran las reglas para crear un procedimiento almacenado: ‘+ Los objetos a los que se haga referencia en el procedimianto almacenado deben existir cuando este se ejecute. Esta caracteristica conockda como resolucién diferida de nom= bres, le permite hacer referencia @ objetos que no existan en tiempo de compilacién, Puede hacer que su procedimianto almacenado cree objetos temporales y luego hacer referencia a ellos posteriormente en el mismo procedimiento almacenado. ‘+ No puede crear y luego quitar 0 voNer a crear objetos con el mismo nombre en un solo procedimionto aimacenado, ‘© Puede toner un maximo de 1,024 parametros. ‘© Puede hacer referencia a tablas temporales dentro de su procedimiento almacenado. Las {ablas tomporales locales desaparecen al erminar el procedimiento. ‘+ Los procedimientos almacenados_no pueden contener las siguientes instrucciones CREATE de T-SQL: CREATE DEFAULT, CREATE PROCEDURE, CREATE RULE, CREATE TRIGGER y CREATE VIEW. ‘+ Puede anidar procedimiantos dentro de otros procedimientos (hasta una profundidad de 32 niveles). ‘+ Al igual que con las vistas, si utiza un * en la instruocién SELECT del procedimisnto ‘almacenado y se agregan columnas a la tabla involucrada, las nuevas columnas no aparecerin al ejecutarse el procedimianto. Debe utiizar la instruceién ALTER y voNer a compilar el procedimiento almacenado. Programe Nacional e homies

You might also like