Tengo un problemilla, tengo un servidor sql server 7 con 3 base de datos. El problema es que tengo el fichero de datos de la base de datos de sistema tempdb (tempdb.mdf) que me ocupa 5,5 Gb. Mi pregunta es, si hay forma de truncar este fichero para que se quede en 0, o alguna forma de borrarlo y volverlo a crear.
Si ejecutas el siguiente SQL statement podrás compactar la BD de tempdb y truncarla, si no quieres truncarla en vez de TRUNCATEONLY tendrás que escribir NOTRUNCATE. DBCC SHRINKDATABASE (tempdb, 10, TRUNCATEONLY) GO 10 es el porcentaje de compactación de la BD, esto te liberara mucho espacio, de todos modos seria recomendable compactar también los log, pero ten en cuenta que El SQLServer 7.0 no compacta inmediatamente ficheros de log cuando se utiliza el comando de DBCC Shrinkfile. La operación de DBCC Shrinkfile ocurre solamente en los puntos de comprobación o las reservas del registro de la transacción. El servidor del SQL divide cada fichero de log en segmentos físico internamente en un número de ficheros de log virtuales (VLFs), que hacen el registro de la transacción. El servidor del SQL marca el VLFs como truncable cualquier después de servidor del SQL los ha restaurado o en los puntos de comprobación. En cualquier caso, puede ser que tengas VLFs con el espacio libre o reutilizable al principio, en el centro, y al final del registro. Solamente cuando el VLFs que el servidor del SQL marcó como truncable está en el extremo del fichero de diario conserva la operación de DBCC Shrinkfile retira el VLFs y compacta el fichero de Log. Porque el servidor del SQL puede compactar un fichero de log solamente a un límite del virtual-registro de archivo, no se puede compactar un fichero de diario a un tamaño más pequeño que el tamaño de un registro virtual archivo-uniforme si no se está utilizando el fichero de log.