Como pasar datos a MAYUSCULAS

05/02/2004 - 22:00 por Jose Lopez | Informe spam
Hola grupo.
Como puedo pasar, de manera eficaz y rapido la
información delas tablas a mayusculas, todos los campos y
todoslos registros????
Gracias de antemano!

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
06/02/2004 - 00:26 | Informe spam
perdon no, pero con que fin buscas eso? la verdad que nunca se me plantio
algo asi, solo como curioso que fin buscas.

Gracias


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
"Jose Lopez" escribió en el mensaje
news:b60301c3ec2b$1dc58a60$
Hola grupo.
Como puedo pasar, de manera eficaz y rapido la
información delas tablas a mayusculas, todos los campos y
todoslos registros????
Gracias de antemano!
Respuesta Responder a este mensaje
#2 Adrian D. Garcia
06/02/2004 - 03:59 | Informe spam
Lo que se me ocrre es hacer los siguientes:

0) Realizar un backup full de la base y deshabilitar el acceso a los
usuarios a la misma (si la puedes poner en single user mejor! De esta forma
el motor no se tiene que preocupar de lockeos)

1) Realizar un script de todas las tablas, indices y relaciones

2) Dropear los indices y relaciones de las tablas. De esta forma los updates
se ejecutaran si actualizar los indices en el caso de que tivieras indices
por las columnas con valores textuales y tampoco se verificarian las
consistencia de las foreign keys, ganando rendimiento.

3) Por cada tabla realizar el siguiente UPDATE
UPDATE mitabla WITH (TABLOCK)
SET
columnatexto1 = UPPER( columnatexto1) ,
columnatexto2 = UPPER ( columnatexto2)
...
GO
BACKUP LOG mibasededatos WITH NO_LOG
GO

Esto no es como ya que para cada tabla tienes que analizar cuales
columnas son de tipos caracteres y construir el update. Dependiendo de la
cantidad de tablas (si por ejemplo son mas de 50 tablas) puedes desarrollar
un programa que haga el analisis y arme el script de actualizacion.
El BACKUP LOG ... WITH NO_LOG sirve para que el log de transacciones no
crezca desmesuradamente. Mi recomendacion es hacerlo despues de cada
UPDATE...

4) Recrear los indices (para ello tienes el script)

5) Recrear las relaciones (para ello tienes el script)

6) Volver la base a modo normal

Con esto creo que cumplimos con lo de eficaz y rapido en la ejecucion, no se
si cumplimos con la rapidez de la implementacion de la solucion.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Jose Lopez" wrote in message
news:b60301c3ec2b$1dc58a60$
Hola grupo.
Como puedo pasar, de manera eficaz y rapido la
información delas tablas a mayusculas, todos los campos y
todoslos registros????
Gracias de antemano!
Respuesta Responder a este mensaje
#3 Javier Loria
06/02/2004 - 12:02 | Informe spam
Hola Jose:
Para generar el codigo del paso 3 podrias usar un cursor que revise las
tablas y te proveea el "script" del update, algo como:
=ÞCLARE ColumnasCharCursor CURSOR
READ_ONLY
FOR
SELECT C.TABLE_SCHEMA,
C.TABLE_NAME,
C.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS AS C
JOIN INFORMATION_SCHEMA.TABLES AS T
ON C.TABLE_SCHEMA=T.TABLE_SCHEMA
AND C.TABLE_NAME =T.TABLE_NAME
WHERE T.TABLE_TYPE='BASE TABLE'
AND C.DATA_TYPE IN ('char','nchar','varchar','nvarchar')
ORDER BY C.TABLE_SCHEMA,C.TABLE_NAME, C.COLUMN_NAME


DECLARE @Usuario SYSNAME,@Tabla SYSNAME, @Columna SYSNAME
DECLARE @UsuarioAnt SYSNAME, @TablaAnt SYSNAME
DECLARE @message varchar(500)

SELECT @UsuarioAnt='', @TablaAnt=''
OPEN ColumnasCharCursor
PRINT 'BEGIN TRAN'
FETCH NEXT FROM ColumnasCharCursor INTO @Usuario, @Tabla, @Columna
WHILE (@@fetch_status <> -1)
BEGIN
IF (@Usuario<>@UsuarioAnt) OR (@TablaAnt<>@Tabla)
BEGIN
PRINT @message
SET @Message=''
SELECT @message = 'UPDATE '+ @Usuario+'.'+@Tabla+' WITH(TABLOCK)'+CHAR(13)
SELECT @message = @message +' SET '+ @Columna+'=UPPER(' + @Columna+
')'
END
ELSE
SELECT @message = @message +CHAR(13)+' , '+ @Columna+'=UPPER(' +
@Columna+ ')'
SELECT @UsuarioAnt=@Usuario, @TablaAnt=@Tabla
FETCH NEXT FROM ColumnasCharCursor INTO @Usuario, @Tabla, @Columna
END
PRINT @message
PRINT 'COMMIT'
CLOSE ColumnasCharCursor
DEALLOCATE ColumnasCharCursor
GO
==Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
"Adrian D. Garcia" wrote in message
news:%
Lo que se me ocrre es hacer los siguientes:

0) Realizar un backup full de la base y deshabilitar el acceso a los
usuarios a la misma (si la puedes poner en single user mejor! De esta


forma
el motor no se tiene que preocupar de lockeos)

1) Realizar un script de todas las tablas, indices y relaciones

2) Dropear los indices y relaciones de las tablas. De esta forma los


updates
se ejecutaran si actualizar los indices en el caso de que tivieras indices
por las columnas con valores textuales y tampoco se verificarian las
consistencia de las foreign keys, ganando rendimiento.

3) Por cada tabla realizar el siguiente UPDATE
UPDATE mitabla WITH (TABLOCK)
SET
columnatexto1 = UPPER( columnatexto1) ,
columnatexto2 = UPPER ( columnatexto2)
...
GO
BACKUP LOG mibasededatos WITH NO_LOG
GO

Esto no es como ya que para cada tabla tienes que analizar cuales
columnas son de tipos caracteres y construir el update. Dependiendo de la
cantidad de tablas (si por ejemplo son mas de 50 tablas) puedes


desarrollar
un programa que haga el analisis y arme el script de actualizacion.
El BACKUP LOG ... WITH NO_LOG sirve para que el log de transacciones no
crezca desmesuradamente. Mi recomendacion es hacerlo despues de cada
UPDATE...

4) Recrear los indices (para ello tienes el script)

5) Recrear las relaciones (para ello tienes el script)

6) Volver la base a modo normal

Con esto creo que cumplimos con lo de eficaz y rapido en la ejecucion, no


se
si cumplimos con la rapidez de la implementacion de la solucion.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Jose Lopez" wrote in message
news:b60301c3ec2b$1dc58a60$
Hola grupo.
Como puedo pasar, de manera eficaz y rapido la
información delas tablas a mayusculas, todos los campos y
todoslos registros????
Gracias de antemano!


Respuesta Responder a este mensaje
#4 Adrian D. Garcia
06/02/2004 - 19:46 | Informe spam
Que buen script!
Gracias Javier.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Javier Loria" wrote in message
news:%
Hola Jose:
Para generar el codigo del paso 3 podrias usar un cursor que revise


las
tablas y te proveea el "script" del update, algo como:
==> DECLARE ColumnasCharCursor CURSOR
READ_ONLY
FOR
SELECT C.TABLE_SCHEMA,
C.TABLE_NAME,
C.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS AS C
JOIN INFORMATION_SCHEMA.TABLES AS T
ON C.TABLE_SCHEMA=T.TABLE_SCHEMA
AND C.TABLE_NAME =T.TABLE_NAME
WHERE T.TABLE_TYPE='BASE TABLE'
AND C.DATA_TYPE IN ('char','nchar','varchar','nvarchar')
ORDER BY C.TABLE_SCHEMA,C.TABLE_NAME, C.COLUMN_NAME


DECLARE @Usuario SYSNAME,@Tabla SYSNAME, @Columna SYSNAME
DECLARE @UsuarioAnt SYSNAME, @TablaAnt SYSNAME
DECLARE @message varchar(500)

SELECT @UsuarioAnt='', @TablaAnt=''
OPEN ColumnasCharCursor
PRINT 'BEGIN TRAN'
FETCH NEXT FROM ColumnasCharCursor INTO @Usuario, @Tabla, @Columna
WHILE (@@fetch_status <> -1)
BEGIN
IF (@Usuario<>@UsuarioAnt) OR (@TablaAnt<>@Tabla)
BEGIN
PRINT @message
SET @Message=''
SELECT @message = 'UPDATE '+ @Usuario+'.'+@Tabla+'


WITH(TABLOCK)'+CHAR(13)
SELECT @message = @message +' SET '+ @Columna+'=UPPER(' + @Columna+
')'
END
ELSE
SELECT @message = @message +CHAR(13)+' , '+ @Columna+'=UPPER(' +
@Columna+ ')'
SELECT @UsuarioAnt=@Usuario, @TablaAnt=@Tabla
FETCH NEXT FROM ColumnasCharCursor INTO @Usuario, @Tabla, @Columna
END
PRINT @message
PRINT 'COMMIT'
CLOSE ColumnasCharCursor
DEALLOCATE ColumnasCharCursor
GO
==> Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
"Adrian D. Garcia" wrote in message
news:%
> Lo que se me ocrre es hacer los siguientes:
>
> 0) Realizar un backup full de la base y deshabilitar el acceso a los
> usuarios a la misma (si la puedes poner en single user mejor! De esta
forma
> el motor no se tiene que preocupar de lockeos)
>
> 1) Realizar un script de todas las tablas, indices y relaciones
>
> 2) Dropear los indices y relaciones de las tablas. De esta forma los
updates
> se ejecutaran si actualizar los indices en el caso de que tivieras


indices
> por las columnas con valores textuales y tampoco se verificarian las
> consistencia de las foreign keys, ganando rendimiento.
>
> 3) Por cada tabla realizar el siguiente UPDATE
> UPDATE mitabla WITH (TABLOCK)
> SET
> columnatexto1 = UPPER( columnatexto1) ,
> columnatexto2 = UPPER ( columnatexto2)
> ...
> GO
> BACKUP LOG mibasededatos WITH NO_LOG
> GO
>
> Esto no es como ya que para cada tabla tienes que analizar cuales
> columnas son de tipos caracteres y construir el update. Dependiendo de


la
> cantidad de tablas (si por ejemplo son mas de 50 tablas) puedes
desarrollar
> un programa que haga el analisis y arme el script de actualizacion.
> El BACKUP LOG ... WITH NO_LOG sirve para que el log de transacciones no
> crezca desmesuradamente. Mi recomendacion es hacerlo despues de cada
> UPDATE...
>
> 4) Recrear los indices (para ello tienes el script)
>
> 5) Recrear las relaciones (para ello tienes el script)
>
> 6) Volver la base a modo normal
>
> Con esto creo que cumplimos con lo de eficaz y rapido en la ejecucion,


no
se
> si cumplimos con la rapidez de la implementacion de la solucion.
>
> Saludos
> Adrian D. Garcia
> MCSD
> NDSoft Consultoria y Desarrollo
>
> "Jose Lopez" wrote in message
> news:b60301c3ec2b$1dc58a60$
> Hola grupo.
> Como puedo pasar, de manera eficaz y rapido la
> información delas tablas a mayusculas, todos los campos y
> todoslos registros????
> Gracias de antemano!
>
>


Respuesta Responder a este mensaje
#5 Gracias!
06/02/2004 - 22:37 | Informe spam
Gracias por, la ayuda!!! les escribi un agradecimento
pero sde me paso y lo puse como nuevo.
Saludos!!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida