2 PRACTICA
Procedimientos Almacenados
Un "trigger" (disparador o desencadenador) es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista).
|
categorias
|
Description
|
|
Usar para administrar para administrar las configuraciones de
replicación geográfica activa de la base de datos de SQL Azure
|
|
|
Se utilizan para implementar las funciones del diccionario de datos
ODBC y aislar las aplicaciones ODBC de los cambios en las tablas subyacentes
del sistema.
|
|
|
Permiten habilitar, deshabilitar o informar sobre los objetos de la
captura de datos modificados.
|
|
|
Se utilizan para implementar la funcionalidad de variable de cursor.
|
|
|
Se utiliza para trabajar con el recopilador de datos y los componentes
siguientes: conjuntos de recopilación, elementos de recopilación y tipos de
recopilación.
|
|
|
Se utilizan para el mantenimiento general de Motor de base de
datos de SQL Server.
|
|
|
Se utilizan para realizar operaciones de correo electrónico desde una
instancia de SQL Server.
|
|
|
Se utilizan para configurar las tareas de mantenimiento fundamentales
necesarias para administrar el rendimiento de las bases de datos.
|
|
|
Se utilizan para implementar y administrar consultas distribuidas.
|
|
|
Se usa para configurar y administrar las características FILESTREAM y
FileTable.
|
|
|
Se utiliza para configurar el firewall de base de datos de SQL Azure.
|
|
|
Se utilizan para implementar y consultar índices de texto completo.
|
|
|
Proporcionan una interfaz de una instancia de SQL Server a
los programas externos para diversas actividades de mantenimiento.
|
|
|
Se utilizan para establecer, modificar y supervisar las
configuraciones de trasvase de registros.
|
|
|
Se utiliza para configurar el almacén de datos de administración.
|
|
|
Permiten habilitar el uso de objetos de Automation estándar en un lote
estándar de Transact-SQL.
|
|
|
Se usan para la administración basada en directivas.
|
|
|
Agregar o quitar un equipo de un grupo de escalado horizontal de
PolyBase.
|
|
|
Se utiliza para optimizar el rendimiento.
|
|
|
Se utilizan para administrar la replicación.
|
|
|
Se utilizan para administrar la seguridad.
|
|
|
Usar para eliminar la copia de seguridad FILE_SNAPSHOT junto con todas
sus instantáneas o para eliminar una instantánea de archivo de copia de
seguridad individual.
|
|
|
Se utiliza para analizar y mejorar el rendimiento de la indización de
los índices espaciales.
|
|
|
Lo utiliza SQL Server Profiler para supervisar el
rendimiento y la actividad.
|
|
|
Los utiliza el Agente SQL Server para administrar
actividades programadas y controladas por eventos.
|
|
|
Se utiliza para administrar las bases de datos de stretch.
|
|
|
Uso de las tablas temporales
|
|
|
Se utilizan para la administración del texto XML.
|
DISPARADORES
Un "trigger" (disparador o desencadenador) es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista).
Se definen para una tabla (o vista)
específica.
Se crean para conservar la integridad
referencial y la coherencia entre los datos entre distintas tablas.
Si se intenta modificar (agregar,
actualizar o eliminar) datos de una tabla en la que se definió un disparador
para alguna de estas acciones (inserción, actualización y eliminación), el
disparador se ejecuta (se dispara) en forma automática.
Un trigger se asocia a un evento
(inserción, actualización o borrado) sobre una tabla.
La diferencia con los procedimientos
almacenados del sistema es que los triggers:
- no pueden ser invocados directamente;
al intentar modificar los datos de una tabla para la que se ha definido un
disparador, el disparador se ejecuta automáticamente.
- no reciben y retornan parámetros.
- son apropiados para mantener la
integridad de los datos, no para obtener resultados de consultas.
Los disparadores, a diferencia de las
restricciones "check", pueden hacer referencia a campos de otras
tablas. Por ejemplo, puede crearse un trigger de inserción en la tabla
"ventas" que compruebe el campo "stock" de un artículo en
la tabla "articulos"; el disparador controlaría que, cuando el valor
de "stock" sea menor a la cantidad que se intenta vender, la
inserción del nuevo registro en "ventas" no se realice.
Los disparadores se ejecutan DESPUES de
la ejecución de una instrucción "insert", "update" o
"delete" en la tabla en la que fueron definidos. Las restricciones se
comprueban ANTES de la ejecución de una instrucción "insert",
"update" o "delete". Por lo tanto, las restricciones se
comprueban primero, si se infringe alguna restricción, el desencadenador no
llega a ejecutarse.
Los triggers se crean con la
instrucción "create trigger". Esta instrucción especifica la tabla en
la que se define el disparador, los eventos para los que se ejecuta y las instrucciones
que contiene.
Sintaxis básica:
create triggre NOMBREDISPARADOR
on NOMBRETABLA
for EVENTO-
insert, update o delete
as
SENTENCIAS
Analizamos la sintaxis:
- "create trigger" junto al
nombre del disparador.
- "on" seguido del nombre de
la tabla o vista para la cual se establece el trigger.
- luego de "for", se indica
la acción (evento, el tipo de modificación) sobre la tabla o vista que activará
el trigger. Puede ser "insert", "update" o
"delete". Debe colocarse al menos UNA acción, si se coloca más de
una, deben separarse con comas.
- luego de "as" viene el
cuerpo del trigger, se especifican las condiciones y acciones del disparador;
es decir, las condiciones que determinan cuando un intento de inserción,
actualización o borrado provoca las acciones que el trigger realizará.
Consideraciones generales:
- "create trigger" debe ser
la primera sentencia de un bloque y sólo se puede aplicar a una tabla.
- un disparador se crea solamente en la
base de datos actual pero puede hacer referencia a objetos de otra base de
datos.
- Las siguientes instrucciones no están
permitidas en un desencadenador: create database, alter database, drop
database, load database, restore database, load log, reconfigure, restore log,
disk init, disk resize.
- Se pueden crear varios triggers para
cada evento, es decir, para cada tipo de modificación (inserción, actualización
o borrado) para una misma tabla. Por ejemplo, se puede crear un "insert
trigger" para una tabla que ya tiene otro "insert trigger".
FUNCIONES
Funciones de agregado
Las funciones de agregado realizan un
cálculo sobre un conjunto de valores y devuelven un solo valor. Se pueden
usar en la lista de selección o en la cláusula HAVING de una instrucción
SELECT.Puede usar una agregación en combinación con la cláusula GROUP BY para
calcular la agregación en las categorías de filas. Use la cláusula OVER
para calcular la agregación en un intervalo de valor específico. La
cláusula OVER no puede seguir las agregaciones GROUPING o GROUPING_ID.
Todas las funciones de agregación son
deterministas; es decir, siempre devuelven el mismo resultado cuando se
ejecutan con los mismos valores de entrada. Para más información,
vea Funciones deterministas y no deterministas.
Funciones analíticas
Las funciones analíticas calculan un
valor agregado basándose en un grupo de filas. A diferencia de las
funciones de agregado, estas funciones pueden devolver varias filas para cada
grupo.Puede usar funciones analíticas para calcular medias móviles, totales
acumulados, porcentajes o resultados de N valores superiores dentro de un
grupo.
Funciones de categoría
Las funciones de categoría devuelven un
valor de categoría para cada fila de una partición. Según la función que
se utilice, algunas filas pueden recibir el mismo valor que otras. Las
funciones de categoría son no deterministas.
Funciones de conjuntos de filas
Las funciones de conjuntos de filas
devuelven un objeto que se puede usar como referencias de tabla en una
instrucción SQL.
Funciones escalares
Operan sobre un valor y después
devuelven otro valor. Las funciones escalares se pueden utilizar donde la
expresión sea válida.
Comentarios
Publicar un comentario