row_number registros numeros numero numerar generar fila especificacion ejemplos contador consecutivos consecutivo condicional columna calculada sql sql-server sql-server-2008

registros - ¿Cómo puedo intercambiar valores de columna en SQL server 2008?



row_number sql server 2008 ejemplos (7)

Este es realmente un buen ejemplo

SELECT * from employees; Go DECLARE @temp as varchar(20) update employees set @temp = fname, fname = lname, lname = @temp WHERE deptno = 10; GO SELECT * from employees;

Tengo una mesa llamada Empleado

Eno ename AttributeValue AttributeName 1 aa a123 abc 2 bbb b123 dcf 3 cc c7sd wew3

Quiero intercambiar los datos de la columna AttributeValue a AttributeName y AttributeName a AttributeValue

Por ejemplo:

Eno ename AttributeValue AttributeName 1 aa abc a123 2 bbb dcf b123 3 cc wew3 c7sd


Simplemente intercambie ambas columnas en una sola actualización:

Update registration Set AttributeName = AttributeValue , AttributeValue = AttributeName where id in (1,2,3)


Todas las técnicas anteriores son lentas para la tabla grande que mueven la fecha en lugar de cambiar el nombre de las columnas, esta es una solución simple:

ALTER TABLE "amplitude" RENAME COLUMN "start_hour_displayed" TO "temp"; ALTER TABLE "amplitude" RENAME COLUMN "start_hour" TO "start_hour_displayed"; ALTER TABLE "amplitude" RENAME COLUMN "temp" TO "start_hour";

Si tiene vistas de funciones vinculadas, tiene que hacer una copia de seguridad antes y restaurarlas después.


update Employee set AttributeValue = AttributeName, AttributeName = AttributeValue


Declare @myTable Table (id int, first_name varchar(50), last_name varchar(50)); Select * from Student Insert Into @myTable (id, first_name, last_name) Select id, last_name, first_name from Student MERGE INTO Student std USING @myTable tmp ON std.id = tmp.id WHEN MATCHED THEN UPDATE SET std.first_name = tmp.first_name, std.last_name = tmp.last_name; Select * from Student

Salida


UPDATE employee SET AttributeValue = AttributeName, AttributeName = AttributeValue

Sin embargo, a menos que ambas columnas tengan exactamente la misma definición, corre el riesgo de perder información.


Update employee Set attributeValue = attributeName, attributeName = attributeValue