Cita:
Iniciado por alex1084 Hola a todos, espero expresar de la mejor manera la idea..
Tengo una base de datos con 200 tablas mas o menos, cada tabla tiene N campos y quisiera hacer un SP que barra todas las tablas registro por registro de forma automática esto con el objetivo de borrar los espacios en blanco innecesarios al inicio y al final de los campos de texto, ya que actualmente la base pesa cerca de 250GB y he llegado a la conclusión que es por los espacios en blanco que tienen muchos de los registros, existe alguna forma de hacer un update de forma automática sin tener que hacer un update por cada tabla???
lo que tengo hasta ahorita es esto
Código SQL:
Ver originalDECLARE @TABLA VARCHAR (100), @COLUMNA VARCHAR(100)
DECLARE CUR_TABLAS CURSOR FOR
SELECT SO.NAME AS TABLA FROM sys.objects SO WHERE SO.TYPE = 'U' ORDER BY SO.NAME
OPEN CUR_TABLAS
FETCH NEXT FROM CUR_TABLAS INTO @TABLA
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM CUR_TABLAS INTO @TABLA
END--FIN DE CURSOR DE TABLAS
CLOSE CUR_TABLAS
DEALLOCATE CUR_TABLAS
con lo que logro barrer todas las tablas de la base, pero no encuentro como ir tabla por tabla barriendo registro por registo y hacer el correspondiente update de cada campo.....
¿Será posible hacer lo que quiero?
o ¿sin duda debo ir tabla por tabla haciendo el update manualmente?
Gracias y espero sus comentarios
Disculpame amigo pero no estoy de acuerdo contigo de que tu problema sean "los espacios en blanco" porque digo esto, porque cuando defines un campo defines su longitud(hablando de los de tipo texto) y sql server te reserva ese espacio de memoria, ahora si tu base de datos esta muy grande lo que puedes hacer es un shrink de la misma, un shrink del log, revisar los indices(una reorganizacion de los mismos) eliminacion de informacion no necesaria, revisar el crecimiento de la base de datos etc.
saludos!