Ayer nos encontramos con un problema al utilizar SQL Server 2008 y es que este había dejado de funcionar con normalidad y al realizar determinadas acciones se producía un error con el mensaje "Este archivo ya existe".
Lo curioso del tema es que al intentar modificar un procedimiento almacenado aparecía un error "controlado" de SQL Server Management Studio informando del problema.
Mientras que si creábamos una nueva consulta el error no parecía estar controlado y era Microsoft .NET Framework quien nos informaba del error.
En ambos casos se trataba del mismo error aunque el texto "Este archivo ya existe" no nos era de gran ayuda para determinar el problema real pero al acceder a la sección de "detalles" pudimos apreciar que no era SQL Server quien producía el error sino .NET Framework al realizar la llamada System.IO.Path.GetTempFileName()
Esta función del Framework se utiliza para poder crear ficheros temporales con nombre único y si miramos la ayuda de Microsoft (MSDN) vemos que se producirá una excepción (error) si existen 65535 ficheros temporales del tipo tmpXXXX.tmp (ya que XXXX representan valores hexadecimales y el valor máximo es FFFF, es decir 65535)
Dicho y hecho, al abrir la carpeta temporal del Framework (C:\Documents and Settings\usuario\Configuración local\Temp) pudimos ver la existencia de gran cantidad de estos archivos haciendo que GetTempFileName generase el error mencionado.
Como es de suponer este comportamiento no es exclusivo de SQL Server 2008, cualquier aplicación que utilice esta función del Framework estará afectada aunque afortunadamente tiene fácil solución, solo hay que eliminar los ficheros temporales.
A veces los errores más raros tienen soluciones realmente sencillas... pero hasta llegar a ellas sudas tinta!!
ResponderEliminarBuen apunte Fossie!
GRACIAS!!!!!!!!!! Llevo dos días desinstalando y volviendo instalar diferentes versiones de SQL Server y .NET framework sin poder hacer practicamente nada con el Management Studio.
ResponderEliminarJamás hubiese dado con la solución.
Muchas gracias otra vez, te debo una!
Genial Luis Pablo, me alegra haberte sido de ayuda.
EliminarExcelente, mil gracias por la información.
ResponderEliminarJHON DAIRO RESTREPO
Me alegra que haya sido de utilidad.
Eliminar5 años después, este post sigue solucionando problemas.
ResponderEliminarMuchas gracias!!
Me alegra que hayas podido solucionar el problema. La verdad es que es un error bastante curioso.
EliminarGracias por dejar tu comentario!
Graciar, presisamente era la solucion.
ResponderEliminar