2011-09-20 21 views

Respuesta

20

Yo donde está Albert. Hice algunas pruebas y descubrí que es posible, de hecho. El uso es el mismo que en una instrucción SELECT. Por ejemplo:

UPDATE some_table 
SET some_row = another_row, 
    some_row2 = another_row/2 
FROM some_table st 
    CROSS APPLY 
    (SELECT TOP 1 another_row FROM another_table at WHERE at.shared_id=st.shared_id) 
WHERE ... 
+1

No olvides aceptar la respuesta correcta, por favor – abatishchev

+3

La consulta anterior me dio el error "Sintaxis incorrecta cerca de ')'." Me tomó un poco de tiempo averiguar por qué, así que solo quiero agregar la solución aquí en caso de que alguien se encuentre con ella. Agregar un "como" después de aplicar la cruz, seleccionar la instrucción parecía arreglarlo. – Kjell

3

Creo que sí. Ejemplo dado here.

+0

¡Hombre que fue rápido! Gracias. –

+0

Hice algunas pruebas. Usted estaba en lo cierto, el uso es el mismo que en una declaración SELECCIONAR. –

+1

El enlace va a un ejemplo de uso de CROSS APPLY en un SELECT no en un UPDATE. – WileCau

Cuestiones relacionadas