UPDATE: funciones de desencadenador (Transact-SQL)UPDATE - Trigger Functions (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Devuelve un valor booleano que indica si se intentó utilizar INSERT o UPDATE en una columna especificada de una tabla o vista.Returns a Boolean value that indicates whether an INSERT or UPDATE attempt was made on a specified column of a table or view. UPDATE() se utiliza en cualquier lugar del cuerpo de un desencadenador INSERT o UPDATE de Transact-SQLTransact-SQL para probar si el desencadenador debe ejecutar ciertas acciones.UPDATE() is used anywhere inside the body of a Transact-SQLTransact-SQL INSERT or UPDATE trigger to test whether the trigger should execute certain actions.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
UPDATE ( column )   

ArgumentosArguments

columncolumn
Es el nombre de la columna que se va a probar para una acción INSERT o UPDATE.Is the name of the column to test for either an INSERT or UPDATE action. Debido a que el nombre de la tabla se especifica en la cláusula ON del desencadenador, no lo incluya antes del nombre de la columna.Because the table name is specified in the ON clause of the trigger, do not include the table name before the column name. Esta columna puede ser de cualquier tipo de datos admitido por SQL ServerSQL Server.The column can be of any data type supported by SQL ServerSQL Server. No obstante, no se pueden utilizar columnas calculadas en este contexto.However, computed columns cannot be used in this context.

Tipos devueltosReturn Types

BooleanBoolean

NotasRemarks

UPDATE() devuelve TRUE independientemente de si un intento de INSERT o UPDATE tiene éxito.UPDATE() returns TRUE regardless of whether an INSERT or UPDATE attempt is successful.

Para probar una acción INSERT o UPDATE en más de una columna, especifique una cláusula UPDATE(column) distinta a continuación de la primera.To test for an INSERT or UPDATE action for more than one column, specify a separate UPDATE(column) clause following the first one. También puede probar acciones INSERT o UPDATE en varias columnas con COLUMNS_UPDATED,Multiple columns can also be tested for INSERT or UPDATE actions by using COLUMNS_UPDATED. que devuelve un patrón de bits que indica las columnas que se insertaron o se actualizaron.This returns a bit pattern that indicates which columns were inserted or updated.

IF UPDATE devuelve el valor TRUE en las acciones INSERT porque en las columnas se insertaron valores explícitos o implícitos (NULL).IF UPDATE returns the TRUE value in INSERT actions because the columns have either explicit values or implicit (NULL) values inserted.

Nota

La cláusula IF UPDATE(columna) funciona de forma idéntica a una instrucción IF, IF…ELSE o WHILE, y puede usar el bloque BEGIN…END.The IF UPDATE(column) clause functions the same as an IF, IF...ELSE, or WHILE clause and can use the BEGIN...END block. Para más información, vea Lenguaje de control de flujo (Transact-SQL).For more information, see Control-of-Flow Language (Transact-SQL).

UPDATE(column) se puede usar en cualquier lugar del cuerpo de un desencadenador Transact-SQLTransact-SQL.UPDATE(column) can be used anywhere inside the body of a Transact-SQLTransact-SQL trigger.

Si un desencadenador se aplica a una columna, el valor UPDATED se devolverá como true o 1, incluso si el valor de columna permanece sin cambios.If a trigger applies to a column, the UPDATED value will return as true or 1, even if the column value remains unchanged. Esto es así por diseño y el desencadenador debe implementar la lógica de negocios que determina si la operación de inserción, actualización o eliminación está permitida o no.This is by-design, and the trigger should implement business logic that determines if the insert/update/delete operation is permissible or not.

EjemplosExamples

En el ejemplo siguiente se crea un desencadenador que imprime un mensaje para el cliente si alguien intenta actualizar las columnas StateProvinceID o PostalCode de la tabla Address.The following example creates a trigger that prints a message to the client when anyone tries to update the StateProvinceID or PostalCode columns of the Address table.

USE AdventureWorks2012;  
GO  
IF EXISTS (SELECT name FROM sys.objects  
      WHERE name = 'reminder' AND type = 'TR')  
   DROP TRIGGER Person.reminder;  
GO  
CREATE TRIGGER reminder  
ON Person.Address  
AFTER UPDATE   
AS   
IF ( UPDATE (StateProvinceID) OR UPDATE (PostalCode) )  
BEGIN  
RAISERROR (50009, 16, 10)  
END;  
GO  
-- Test the trigger.  
UPDATE Person.Address  
SET PostalCode = 99999  
WHERE PostalCode = '12345';  
GO  

Consulte tambiénSee Also

COLUMNS_UPDATED (Transact-SQL) COLUMNS_UPDATED (Transact-SQL)
CREATE TRIGGER (Transact-SQL)CREATE TRIGGER (Transact-SQL)