Actualizar varias columnas

22/02/2005 - 23:19 por Daniel | Informe spam
Tengo una duda:
Como puedo actualizar varias columnas con una unica sentencia de sql.
Digamos que tengo 50 columnas, con valores numericos, y quiero cambiar sobre
las 50 columnas los valores (-1) por (1)
Yo lo puedo hacer si escribo

Update Tabla1
Set Columna1 = 1
Where Columna1 = -1

Lo que no quiero es escribir 50 veces la misma sentencia para las diferentes
columnas
Como puedo hacerlo en una unica sentencia facil?

Preguntas similare

Leer las respuestas

#1 Isaías
22/02/2005 - 23:45 | Informe spam
Esta es la idea
DECLARE @Miscolumnas int, DECLARE @SQLString NVARCHAR(100)
SET @Miscolumnas = 1
WHILE @Miscolumnas < 51
BEGIN
SET @SQLString = N'UPDATE MyTabla SET Mycol'+convert
(varchar,@Miscolumnas)+' = 1 WHERE Mycol'+convert
(varchar,@Miscolumnas)+' = -1'
EXECUTE SP_EXECUTESQL @SQLString
SET @Miscolumnas = @Miscolumnas+1
CONTINUE
END
Respuesta Responder a este mensaje
#2 MAXI
23/02/2005 - 00:33 | Informe spam
Hola, ojo con esto, porque debe saber nuestro amigo todos los problemas que
el sql dinamico puede causar ;)



Maxi
Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:



"Isaías" escribió en el mensaje
news:136801c51930$3a345540$
Esta es la idea
DECLARE @Miscolumnas int, DECLARE @SQLString NVARCHAR(100)
SET @Miscolumnas = 1
WHILE @Miscolumnas < 51
BEGIN
SET @SQLString = N'UPDATE MyTabla SET Mycol'+convert
(varchar,@Miscolumnas)+' = 1 WHERE Mycol'+convert
(varchar,@Miscolumnas)+' = -1'
EXECUTE SP_EXECUTESQL @SQLString
SET @Miscolumnas = @Miscolumnas+1
CONTINUE
END
Respuesta Responder a este mensaje
#3 Eladio Rincón
23/02/2005 - 14:07 | Informe spam
has probado hacer el update de la siguiente format?

update table
set c1=1
, c2 = 1
, c3 = 1
, c4 = 1
, c5 = 1
where
<condición>

es un rollo copiar/pegar eso 50 veces, pero lo harás en una sóla consulta de
actualización

¿es eso lo que necesitas?

Eladio Rincón
SQL Server MVP

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Daniel" wrote in message
news:
Tengo una duda:
Como puedo actualizar varias columnas con una unica sentencia de sql.
Digamos que tengo 50 columnas, con valores numericos, y quiero cambiar


sobre
las 50 columnas los valores (-1) por (1)
Yo lo puedo hacer si escribo

Update Tabla1
Set Columna1 = 1
Where Columna1 = -1

Lo que no quiero es escribir 50 veces la misma sentencia para las


diferentes
columnas
Como puedo hacerlo en una unica sentencia facil?
Respuesta Responder a este mensaje
#4 Daniel
23/02/2005 - 16:09 | Informe spam
Funciona si las columnas se llaman columna1, columna2,...columna50.
Pero sucede que las columnas tienen nombres como por ejemplo:
pan, queso, leche, avena,, cafe.
entonces como hago?????

"Isaías" escribió:

Esta es la idea
DECLARE @Miscolumnas int, DECLARE @SQLString NVARCHAR(100)
SET @Miscolumnas = 1
WHILE @Miscolumnas < 51
BEGIN
SET @SQLString = N'UPDATE MyTabla SET Mycol'+convert
(varchar,@Miscolumnas)+' = 1 WHERE Mycol'+convert
(varchar,@Miscolumnas)+' = -1'
EXECUTE SP_EXECUTESQL @SQLString
SET @Miscolumnas = @Miscolumnas+1
CONTINUE
END

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida