2011-06-22 19 views

Respuesta

29

NO!

Tendrá que manejar los individualmente

Update [table] 
Set ID = 111111259 
WHERE ID = 2555 

Update [table] 
Set ID = 111111261 
WHERE ID = 2724 

--... 
3

No, lo que se necesita para crear una consulta separada para cada actualización.

4

Nop, así es como se hace:

UPDATE table SET ID = 111111259 WHERE ID = 2555 

UPDATE table SET ID = 111111261 WHERE ID = 2724 

UPDATE table SET ID = 111111263 WHERE ID = 2021 

UPDATE table SET ID = 111111264 WHERE ID = 2017 
2

No. Vas a tener que hacer actualizaciones independientes:

UPDATE table 
SET ID = 111111259 
WHERE ID = 2555 

UPDATE table 
SET ID = 111111261 
WHERE ID = 2724 

UPDATE table 
SET ID = 111111263 
WHERE ID = 2021 

UPDATE table 
SET ID = 111111264 
WHERE ID = 2017 
8

No. Eso no es una consulta válida. Sólo puede tener una instrucción SET, con múltiples campos, sin embargo, una cláusula WHERE, así

update table1 set field1=value1, field2=value2, field3=value3 where filed4=value5 
2

desde sql esos todas las líneas que desea que haga, lo haría usted es un código como thise

Dentro de usted la administración Sql también ejecuta la consulta y esto debería funcionar.

UPDATE table 
SET ID = 111111259 WHERE ID = 2555  

UPDATE table 
SET ID = 111111261 WHERE ID = 2724 

UPDATE table 
SET ID = 111111263 WHERE ID = 2021 

UPDATE table 
SET ID = 111111264 WHERE ID = 2017 
32

La mejor opción son las actualizaciones múltiples.

Como alternativa, puede hacer lo siguiente, pero es NO recomendada:

UPDATE table 
SET ID = CASE WHEN ID = 2555 THEN 111111259 
       WHEN ID = 2724 THEN 111111261 
       WHEN ID = 2021 THEN 111111263 
       WHEN ID = 2017 THEN 111111264 
     END 
WHERE ID IN (2555,2724,2021,2017) 
+1

nice one + 1. A veces no es el mejor script que se recompensa. –

+8

Si mi script ayudó a alguien a resolver su problema o aprender algo, ¡ya estoy recompensado! – niktrs

-1

utilizar una cadena de terminador de consulta y establecer esto en las opciones de la aplicación cliente de SQL. Yo uso GO como el terminador de la consulta.

Su SQL se vería así;

UPDATE table SET ID = 111111259 WHERE ID = 2555 GO 
UPDATE table SET ID = 111111261 WHERE ID = 2724 GO 
UPDATE table SET ID = 111111263 WHERE ID = 2021 GO 
UPDATE table SET ID = 111111264 WHERE ID = 2017 GO 

Esto le permitirá hacer Ctrl + A y ejecutar todas las líneas a la vez.

El terminador de cadena le dice al cliente SQL que la instrucción de actualización ha finalizado e ir a la siguiente línea y procesar la siguiente instrucción.

Espero que ayude

+0

'GO' no es un terminador de SQL válido. El delimitador de declaración en SQL (el lenguaje de consulta) es ';'.'GO' no es parte del estándar SQL ni está permitido para DB2 (solo lo utilizan algunas ** herramientas ** de Microsoft para delimitar sentencias) –

+0

La mayoría de los editores de texto SQL como winsql, SQL SSMS o MySQL Workbench permiten que el usuario lo defina terminadores. El mio es GO. Gracias por tu contribución. – stevenb123

2

También puede usar caso, entonces así:

UPDATE table 
SET ID = case 

when ID = 2555 then 111111259 

when ID = 2724 then 111111261 

when ID = 2021 then 111111263 

when ID = 2017 then 111111264 

else ID 
end 
0

No, es necesario para manejar todas las declaraciones por separado ..

UPDATE table1 
Statement1; 
UPDATE table 1 
Statement2; 

Y así sucesivamente

+0

... como de hecho alguien contestó en 2011:/ –

+0

Solo haciendo mi trabajo – pr0grammaniac

Cuestiones relacionadas