Depurar la base de datos

Soy cc necesito saber como depurar una base de datos... Tiene miles y miles de archivos, no recuerdo bien las sentencias para hacerlo en sql... Ayuda ya que es vital... Si pueden enviarme gráficos mejor!.
Tiene como 16 campos cada archivo así que me imagino que query y muchos sub query.,...
Años que no hago esto... Pero soy ing en sistemas y es mi trabajo
gracias
ayuda!

1 Respuesta

Respuesta
1
¿A qué te refieres con depurar? ¿Quieres borrar datos? ¿Adelgazar la base? ¿Regenerar los indices? ¿O todo lo anterior?
Seria de mucha ayuda también que em digas en que programa esta tu base de datos (MICROSOFT SQL SERVER, ACCESS, DBASE)
Hola soy cc necesito saber como depurar una base de datos... tiene miles y miles de archivos, no recuerdo bien las sentencias para hacerlo en sql... ayuda ya que es vital... si pueden enviarme gráficos mejor!.
Tiene como 16 campos cada archivo así que me imagino que query y muchos sub query.,...
Años que no hago esto... pero soy ing en sistemas y es mi trabajo
gracias
ayuda!
[size= small; font-family: Times New Roman]Bueno la base de datos es msql server... a depurar me refiero a limpiarla...[/size]
[size= small; font-family: Times New Roman]Te explico con más detalle... son más de un millón de registros que están mal ingresados, es decir por ejemplo en nombre esta maría cecilia, Ma cecilia, María Cecilia, ma·$fia Cesilia, osea no están ingrsados correctamente debo crear sentencias sql para tener integridad en la información ... que siempre diga María Cecilia o el nombre que corresponda. y así con todos los campos...[/size]
[size= small; font-family: Times New Roman]Son como 16 campos[/size]
[size= small; font-family: Times New Roman]Espero haber sido clara,....[/size]
[size= small; font-family: Times New Roman]muchas gracias!!!![/size]
¿?
No se que paso!
El motor de la base de datos es msql osea la de microsoft.
Bueno te explico con detalle... tengo una semana para hacerlo ya que la información es urge para el departamento de ventas y marketing.
Resulta que se compro una base de datos _(la información)a otra compañía que posibles clientes, estos datos están mal ingresados... ejemplo si busco por nombres están con tilde, sin tilde, mayúsculas, minúsculas, caracteres especiales... entre otros. Esto lo se porque me dijo mi jefe que vaya buscando como hacerlo... yo me encargo del análisis y manejo la documentación pero nada de progra... lo hice pero hace uffff cuando me gradúe.
Mi trabajo es limpiarla... es decir depurara.
Ademas existen varias compañías que tienen como referencia la misma persona, aunque tienen diferentes id y nombres... así que creo que deberé agruparlas de una u otra forma.
Te agradecería que me digas como hacerlo o si tienes un tuto que me ayude de forma gráfica... gracias
La depuración que quieres hacer es algo laboriosa, no gay una receta mágica que haga una "depuración" quitando caracteres especiales o convirtiendo todo en mayúsculas o minúsculas. Lo que debes hacer es depurar creando querys que busquen los caracteres que tu consideras que esta mal y reemplazándolo por otro carácter que tu consideres apropiado.
Si quieres mandame la estructura de alguna de tus tablas y los caracteres que quieres quitar y vemos como hacer un query "como ejemplo"
Suerte
Ahora estoy tratando de hacer los qyuerys pero el tipo de dato es char, y hay mucho espacio innecesario ocupado por lo que quiero cambiar el tipo de dato desde la base que tengo pero tengo miedo que pase algo con la infor ya que la verdad esta muy pesada y pienso seria una forma de hacerla más ágil.
Y así hacer los querys sin tantos espacios innecesario!
quiero cambiar el tipo de dato de char a varchar y de datetime a smallDatetime...
Que me aconsejas!
Crea una tabla temporal de respaldo... usa select * into tabla_respaldo from tabla_origen,
después cambia el tipo de dato.
Otra cosa es que generes una tabla igual a la original solo que con los tipos de datos que deseas y hagas un insert into tabla_destino (campos) select campos from tabla origen eso e dejará los datos en la tabla destino pero con el tipo que deseas.
No olvides borrar todas las tablas temporales que uses, te reominedo hacer un check list donde anotes todo.
Suerte
por el  lado del char a varchar no me causo problemas pero del datetime a smalltime si...
Este es el error que me salio... La conversión del tipo de datos datetime a smalldatetime ha generado un error de desbordamiento de smalldatetime.
Pero no es solo un registro sino miles! Sabes que le puedo hacer allí!
:) Gracias por todo-----
Por lo que veo no tengo fechas menores a 1900... pero si hay varios campos en blanco
sale el mensaje Msg 298, level 16 State line1
dice que ha generado un error de desbordamiento
Usa el cast o convert para que no tengas ese error, es decir, en tu sentencia convierte el tipo de datos datetime a smalldatetime más o menos así:
Insert into Tabla_destino (campos, campo_smalldatetime) select campos, cast(cmpo_datetime as smalldatetime) from tabla_origen
o usando el convert para que le des formato.
Suerte
Puedes ayudarme con el formato del convert!
Ya intente con as smalldatetime pero nada sale el mismo error
Ok, mandame tu consulta y te la corrijo.
insert into [bck_nuevacopia] (nombre, direccion, fechainicio, fechafin) select  nombre, direccion, fechainicio as smalldatetime, fechafin as smalldatetime from [dbo]. [baseactual]
Hice una nueva base con los tipos de datos que deseo utilizar... y procedía a hacer el traspaso de la información con el insert into que me dijiste hace un rato...
Pero me dio error en el datetime al pasarlo al smalldatetime!
Pues es que no puedes decir solamente select campo as... debes usar la función convert o cast más o menos así:
insert into bck_nuevacopia (nombre, direccion, fechainicio, fechafin)
select nombre, direccion, cast(fechainicio as smalldatetime), cast(fechafin as smalldatetime) from baseactual
Viendo las cosas tal vez sea más fácil ayudarte por messenger, mi dirección es [email protected].
Disculpa que te moleste tanto pero la puse igualita como tu la pones pero me sale el mismo error...
¿Tienes el del convert?
Mira le puse igual solo que cambie en el select
select nombre, direccion, convert(smalldatetime, fechainicio), convert(smalldatetime, fechafin) y sale el mismo error
Muy bien, si lo pusiste como te dije entonces quiere decir que tienes alguna fecha menos a 1900 o mayor a junio 6 de 2079. Revisa esos datos y recuerda los rango de ambos tipos de dato:
datetime
January 1, 1753, through December 31, 9999
Smalldatetime
January 1, 1900, through June 6, 2079

Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas