Actualizar la columna con el mismo valor para todas las filas que tienen el mismo valor en otra columna.
Dada la siguiente tabla de ejemplo y sus datos:
create table Ejemplo(
Id int not null,
Col1 int not null,
Col2 uniqueidentifier null,
);
insert into Ejemplo
values
(1, 1, NULL), (2, 1, NULL), (3, 1, NULL), (4, 2, NULL), (5, 3, NULL), (6, 3, NULL)
Esto genera:
| Id | Col1 | Col2 |
| - | - |- |
| 1| 1|NULL|
| 2| 1|NULL|
| 3| 1|NULL|
| 4| 2|NULL|
| 5| 3|NULL|
| 6| 3|NULL|
Me gustaría ayuda, si es posible, para escribir un script que actualice Col2 para todas las filas con el mismo newid()
basado en el mismo valor de Col1.
Ejemplo de la tabla después de ejecutar el script:
| Id | Col1 | Col2 |
| - | - |- |
| 1| 1|bad34c74-f546-4d79-804b-d048d8c7d977|
| 2| 1|bad34c74-f546-4d79-804b-d048d8c7d977|
| 3| 1|bad34c74-f546-4d79-804b-d048d8c7d977|
| 4| 2|e464b79a-b97c-4192-a4f3-327cc147cc4a|
| 5| 3|99475e8f-2788-4c63-817f-4deb130440ab|
| 6| 3|99475e8f-2788-4c63-817f-4deb130440ab|
Aprecio mucho cualquier ayuda.
davy.ai
¡Claro! Aquí tienes un script que debería hacer lo que estás buscando:
Este script primero selecciona todos los valores distintos de
Col1
para los cuales hay más de una fila. Luego, estableceCol2
como un nuevo identificador único para todas las filas con alguno de esos valores seleccionados deCol1
.Después de ejecutar este script, todas las filas con el mismo valor de
Col1
tendrán el mismo valor enCol2
.