- WITH <common_table_expression>
Especifica la vista o el conjunto de resultados temporal indicado, que también se conoce como expresión de tabla común (CTE), definido en el ámbito de la instrucción UPDATE. El conjunto de resultados CTE se deriva de una consulta simple. La instrucción UPDATE hace referencia al conjunto de resultados.
Las expresiones de tabla comunes también se pueden utilizar con las instrucciones SELECT, INSERT, DELETE y CREATE VIEW. Para obtener más información, vea WITH common_table_expression (Transact-SQL).
- TOP ( expression) [ PERCENT ]
Especifica el número o porcentaje de filas que se va a actualizar. expression puede ser un número o un porcentaje de las filas.
Las filas a las que se hace referencia en la expresión TOP utilizada con INSERT, UPDATE o DELETE no se ordenan.
En las instrucciones INSERT, UPDATE y DELETE, se deben utilizar paréntesis para delimitar expression en TOP. Para obtener más información, vea TOP (Transact-SQL).
- table_alias
Alias especificado en la cláusula FROM que representa la tabla o vista de la que se van a actualizar las filas.
- server_name
Es el nombre del servidor (un nombre de servidor vinculado o la función OPENDATASOURCE como nombre de servidor) en el que se encuentra la tabla o la vista. Si se especifica server_name, son obligatorios database_name y schema_name.
- database_name
Es el nombre de la base de datos.
- schema_name
Es el nombre del esquema al que pertenece la tabla o vista.
- table_or view_name
Es el nombre de la tabla o vista cuyas filas se deben actualizar. La vista a la que hace referencia table_or_view_name debe poder actualizarse y debe hacer referencia exactamente a una tabla base en la cláusula FROM de la vista. Para obtener más información acerca de las vistas que se pueden actualizar, vea CREATE VIEW (Transact-SQL).
- rowset_function_limited
Es la función OPENQUERY u OPENROWSET, dependiendo de las funciones del proveedor.
- WITH ( <Table_Hint_Limited> )
Especifica una o varias sugerencias de tabla que están permitidas en una tabla de destino. La palabra clave WITH y los paréntesis son obligatorios. No se permiten NOLOCK ni READUNCOMMITTED. Para obtener más información acerca de las sugerencias de tabla, vea Sugerencias de tabla (Transact-SQL).
- @table_variable
Especifica una variable table como origen de la tabla.
- SET
Especifica la lista de nombres de variable o de columna que se van a actualizar.
- column_name
Es una columna que contiene los datos que se van a cambiar. column_name debe existir en table_or view_name. Las columnas de identidad no se pueden actualizar.
- expression
Es una variable, un valor literal, una expresión o una instrucción de subselección entre paréntesis que devuelve un solo valor. El valor devuelto por expression sustituye al valor existente en column_name o @variable.
Nota |
|---|
Cuando se hace referencia a los tipos de datos de caracteres Unicode nchar, nvarchar y ntext, debe agregarse como prefijo la letra mayúscula 'N' a 'expression'. Si no se especifica 'N', SQL Server convierte la cadena a la página de códigos que se corresponde con la intercalación predeterminada de la base de datos o columna. Los caracteres que no se encuentren en esta página de códigos se perderán. |
- DEFAULT
Especifica que el valor predeterminado definido para la columna debe reemplazar al valor existente en esa columna. Esta operación también puede utilizarse para cambiar la columna a NULL si no tiene asignado ningún valor predeterminado y se ha definido para aceptar valores NULL.
- { += | -= | *= | /= | %= | &= | ^= | |= }
Operador de asignación compuesta:
+= Sumar y asignar
-= Restar y asignar
*= Multiplicar y asignar
/= Dividir y asignar
%= Módulo y asignar
&= AND bit a bit y asignar
^= XOR bit a bit y asignar
|= OR bit a bit y asignar
- udt_column_name
Es una columna de un tipo definido por el usuario.
- property_name | field_name
Es un miembro de propiedad público o un miembro de datos público de un tipo definido por el usuario.
- method_name(argument [ ,... n] )
Es un método mutador público no estático de udt_column_name que utiliza uno o varios argumentos.
- .WRITE (expression,@Offset,@Length)
Especifica que una sección del valor de column_name se va a modificar. expression reemplaza las unidades @Length a partir de @Offset de column_name. Con esta cláusula solo se pueden especificar columnas de tipo varchar(max), nvarchar(max) o varbinary(max). column_name no puede ser NULL y no se puede calificar con un nombre de tabla o un alias de tabla.
expression: es el valor que se usa para incrementar column_name. expression se debe evaluar, o bien se debe poder convertir implícitamente al tipo column_name. Si expression se establece como NULL, se omitirá @Length, y se truncará el valor de column_name en el @Offset especificado.
@Offset es el punto inicial del valor de column_name en el que se escribe expression. @Offset es una posición ordinal basada en cero, es de tipo bigint y no puede ser un número negativo. Si @Offset es NULL, la operación de actualización anexa expression al final del valor de column_name existente y @Length no se tiene en cuenta. Si @Offset es mayor que la longitud del valor de column_name, el Motor de base de datos devuelve un error. Si la suma de @Offset y @Length excede el final del valor subyacente de la columna, se elimina todo hasta el último carácter del valor. Si la suma de @Offset y LEN(expression) es superior al tamaño subyacente declarado, se produce un error.
@Length es la longitud de la sección de la columna, a partir de @Offset, que se reemplaza por expression. @Length es de tipo bigint y no puede ser un número negativo. Si @Length en NULL, la operación de actualización quita todos los datos de @Offset hasta el final del valor de column_name.
Para obtener más información, vea la sección Notas.
- @variable
Es una variable declarada que se establece en el valor devuelto por expression.
SET @variable = column = expression establece la variable en el mismo valor que la columna. Esto no es lo mismo que SET @variable = column, column = expression, que establece la variable en el valor previo a la actualización de la columna.
- <OUTPUT_Clause>
Devuelve datos actualizados o expresiones basadas en ellos como parte de la operación UPDATE. La cláusula OUTPUT no se admite en instrucciones DML dirigidas a tablas o vistas remotas. Para obtener más información, vea OUTPUT (cláusula de Transact-SQL).
- FROM <table_source>
Especifica que se utiliza un origen de tabla, vista o tabla derivada para proporcionar los criterios de la operación de actualización. Para obtener más información, vea FROM (Transact-SQL).
Si el objeto que se actualiza es el que se indica en la cláusula FROM y solo hay una referencia al objeto en ella, puede especificarse o no un alias de objeto. Si el objeto que se actualiza aparece más de una vez en la cláusula FROM, una única referencia al objeto no debe especificar un alias de tabla. Todas las demás referencias al objeto de la cláusula FROM deben incluir un alias de objeto.
Una vista con un desencadenador INSTEAD OF UPDATE no puede ser el destino de UPDATE con una cláusula FROM.
Nota |
|---|
Las llamadas a OPENDATASOURCE, OPENQUERY u OPENROWSET en la cláusula FROM se evalúan por separado y de forma independiente de otras llamadas a estas funciones utilizadas como destino de la actualización, incluso si se han suministrado argumentos idénticos a las dos llamadas. En particular, las condiciones de filtro o combinación aplicadas en el resultado de una de esas llamadas no tienen ningún efecto en los resultados de la otra llamada. |
- WHERE
Especifica las condiciones que limitan las filas que se actualizan. Hay dos modos de actualización, dependiendo del formato de cláusula WHERE que se utilice:
Las actualizaciones por búsqueda especifican una condición de búsqueda para calificar las filas que se van a eliminar.
Las actualizaciones posicionadas utilizan la cláusula CURRENT OF para especificar un cursor. La operación de actualización se produce en la posición actual del cursor.
- <search_condition>
Especifica la condición que debe cumplirse para que se actualicen las filas. La condición de búsqueda también puede ser la condición en la que se basa una combinación. El número de predicados que pueden incluirse en una condición de búsqueda no tiene límite. Para obtener más información acerca de los predicados y las condiciones de búsqueda, vea Condiciones de búsqueda (Transact-SQL).
- CURRENT OF
Indica que la actualización se realice en la posición actual del cursor especificado.
Una actualización posicionada que utiliza una cláusula WHERE CURRENT OF actualiza la fila que se encuentra en la posición actual del cursor. Este método puede ser más preciso que una actualización por búsqueda que utilice una cláusula WHERE <search_condition> para calificar las filas que se deben actualizar. Una actualización por búsqueda modifica varias filas cuando la condición de búsqueda no identifica una sola fila de forma exclusiva.
- GLOBAL
Especifica que cursor_name hace referencia a un cursor global.
- cursor_name
Es el nombre del cursor abierto desde el que se debe realizar la captura. Si hay un cursor global y otro local con el nombre cursor_name, este argumento hace referencia al cursor global si se especifica GLOBAL; de lo contrario, hace referencia al cursor local. El cursor debe permitir actualizaciones.
- cursor_variable_name
Es el nombre de una variable de cursor. cursor_variable_name debe hacer referencia a un cursor que permita realizar actualizaciones.
- OPTION ( <query_hint> [ ,... n ] )
Especifica que se utilizan las sugerencias del optimizador para personalizar el modo en que el Motor de base de datos procesa la instrucción. Para obtener más información, vea Sugerencias de consulta (Transact-SQL).