Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Al igual que las funciones de los lenguajes de programacin, las funciones definidas
por el usuario de SQL Server son rutinas que aceptan parmetros, realizan una accin,
como un clculo complejo, y devuelven el resultado de esa accin como un valor. El
valor devuelto puede ser un valor escalar nico o un conjunto de resultados.
Tipos de funciones
Funcin escalar
Las funciones escalares definidas por el usuario devuelven un nico valor de datos del
tipo definido en la clusula RETURNS. En una funcin escalar insertada no hay cuerpo
de la funcin; el valor escalar es el resultado de una sola instruccin. Para una funcin
escalar de varias instrucciones, el cuerpo de la funcin, definido en un bloque
BEGIN...END, contiene una serie de instrucciones de Transact-SQL que devuelven el
nico valor. El tipo devuelto puede ser de cualquier tipo de datos
excepto text, ntext, image, cursor y timestamp.
Funciones con valores de tabla
Las funciones con valores de tabla definidas por el usuario devuelven un tipo de
datos table. Las funciones insertadas con valores de tabla no tienen cuerpo; la tabla es
el conjunto de resultados de una sola instruccin SELECT.
Funciones del sistema
SQL Server proporciona numerosas funciones del sistema que se pueden usar para
realizar diversas operaciones. No se pueden modificar. Para obtener ms informacin,
vea Funciones integradas (Transact-SQL), Funciones almacenadas del sistema (TransactSQL) y Funciones y vistas de administracin dinmica (Transact-SQL).
Sintaxis
CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
AS { sql_statement [ ; ] [ ,...n ] [ ; ] > }
<dml_trigger_option> ::=
[ EXECUTE AS Clause ]
Argumentos
schema_name
Es el nombre del esquema al que pertenece un desencadenador DML. Los desencadenadores
DML tienen como mbito el esquema de la tabla o la vista donde se crean. schema_name no se
puede especificar para los desencadenadores DDL o LOGON.
trigger_name
Es el nombre del desencadenador. El parmetro trigger_name debe cumplir con las reglas de
los identificadores, con la excepcin de que trigger_nameno puede comenzar con los smbolos #
o ##.
table | view
Es la tabla o vista en que se ejecuta el desencadenador DML; algunas veces se denomina tabla
del desencadenador o vista del desencadenador. Especificar el nombre completo de la tabla o
vista es opcional. Solo se puede hacer referencia a una vista mediante un desencadenador
INSTEAD OF.No es posible definir desencadenadores DML en tablas temporales locales o
globales.
DATABASE
Aplica el mbito de un desencadenador DDL a la base de datos actual. Si se especifica, el
desencadenador se activa cada vez que event_type o event_group tienen lugar en la base de
datos actual.
ALL SERVER
Aplica el mbito de un desencadenador DDL o logon al servidor actual. Si se especifica, el
desencadenador se activa cada vez que event_type oevent_group tienen lugar en el servidor
actual.
WITH ENCRYPTION
Ofusca el texto de la instruccin CREATE TRIGGER. El uso de WITH ENCRYPTION impide que el
desencadenador se publique como parte de la replicacin de SQL Server. WITH ENCRYPTION no
se puede especificar para desencadenadores CLR.
EXECUTE AS
Especifica el contexto de seguridad en el que se ejecuta el desencadenador. Permite controlar
qu cuenta de usuario utiliza la instancia de SQL Server para validar los permisos sobre
cualquier objeto de base de datos al que haga referencia el desencadenador.
FOR | AFTER
AFTER especfica que el desencadenador DML solo se activa cuando todas las operaciones
especificadas en la instruccin SQL desencadenadora se han ejecutado correctamente. Adems,
todas las acciones referenciales en cascada y las comprobaciones de restricciones deben ser
correctas para que este desencadenador se ejecute.
INSTEAD OF
Especifica que se ejecuta el desencadenador
desencadenadora, por lo que se suplantan