Unidad 8. El DDL, Lenguaje de Definición de Datos (IV)


Con MODIFY FILE <esp_fichero> podemos cambiar las especificaciones de alguno de los archivos de la base de datos.


    <esp_fichero>::= 

      (

          NAME = nbarchivo  

          [ , NEWNAME = nuevo_nbarchivo ] 

          [ , FILENAME  = 'nbarchivo_fisico' ] 

          [ , SIZE = tamaño [ KB | MB | GB | TB ] ] 

          [ , MAXSIZE  = { tamaño_máximo [ KB | MB | GB | TB ] | UNLIMITED } ] 

          [ , FILEGROWTH = incremento [  KB | MB | GB | TB| % ] ] 

          [ , OFFLINE ]

      )  

Sólo se puede cambiar una propiedad <especificaciónDeArchivo> cada vez.
NAME se debe especificar siempre para identificar el archivo que se va a modificar.
Si se especifica SIZE, el nuevo tamaño debe ser mayor que el tamaño actual del archivo. Para reducir el tamaño de una base de datos, se utiliza el comando de consola  SHRINKDATABASE de Transact_SQL.

Para modificar el nombre lógico de un archivo de datos o de un archivo de registro, especificamos el nombre lógico nuevo para el archivo en la cláusula NEWNAME. Por ejemplo:


    ALTER DATABASE MiBasedeDatos

      MODIFY FILE ( NAME = bd1,  NEWNAME = base1)  

Con esta sentencia, el archivo bd1 ahora se llama base1.

Con FILENAME podemos cambiar el nombre del fichero físico, esto nos permite también cambiar la ubicación del archivo físico.

Por ejemplo:


    ALTER DATABASE MiBasedeDatos

      MODIFY FILE(NAME = nbficherológico,

       FILENAME = 'nueva_ruta/nb_fichero_físico')  

La cláusula OFFLINE establece el archivo sin conexión e impide el acceso a todos los objetos del grupo de archivos. ¡Muy importante!, esta opción sólo se debe de utilizar si el archivo está dañado y si se puede restaurar. Un archivo establecido en OFFLINE sólo se puede restablecer con conexión mediante la restauración del archivo a partir de una copia de seguridad. Para obtener más información acerca de cómo restaurar un solo archivo, consultar en la ayuda la sentencia  RESTORE (Transact-SQL).

UNLIMITED especifica que el tamaño del archivo aumenta hasta que el disco esté lleno. En SQL Server 2005, un archivo de registro especificado con un aumento ilimitado tiene un tamaño máximo de 2 TB y un archivo de datos tiene un tamaño máximo de 16 TB.

En cuanto a la modificación de la definición de grupos, tenemos esta sintaxis:


    <cambiar_grupos>::=

      {

          | ADD  FILEGROUP nbgrupo 

          | REMOVE  FILEGROUP nbgrupo

          | MODIFY FILEGROUP nbgrupo

              {

                   {  READONLY | READWRITE } 

                   |  { READ_ONLY | READ_WRITE }

        }

              | DEFAULT

              | NAME = nuevo_ nbgrupo

              }

      }  

Con ADD FILEGROUP nbgrupo  añadimos un nuevo grupo de archivos de la base de datos.
Con REMOVE FILEGROUP nbgrupo  eliminamos el grupo de la base de datos.
El grupo de archivos no se puede quitar a menos que esté vacío. Para quitar todos los archivos del grupo, primero se mueven los archivos a otro grupo, si los archivos están vacíos, se pueden eliminar directamente.
Con MODIFY FILEGROUP nbgrupo, modificamos el grupo de archivos.

DEFAULT Cambia el grupo de archivos predeterminado de la base de datos a nbgrupo.

NAME = nuevo_nbgrupo  Cambia el nombre del grupo a nuevo_nbgrupo.

READ_ONLY | READONLY Especifica que el grupo de archivos es de sólo lectura. En este caso no se permitirá la actualización de los objetos del mismo. Una base de datos de sólo lectura no permite realizar modificaciones en los datos por lo que:

Para cambiar este estado, se debe tener acceso exclusivo a la base de datos.
El grupo de archivos principal no puede ser de sólo lectura.
Se puede utilizar indistintamente la palabra clave READONLY o READ_ONLY, pero READONLY se quitará en una versión futura de Microsoft SQL Server por lo que se recomienda  READ_ONLY.

READ_WRITE | READWRITE Especifica que el grupo es de lectura y escritura por lo que  pueden realizarse actualizaciones en los objetos del grupo de archivos.
Para cambiar este estado se debe tener acceso exclusivo a la base de datos.
Se puede utilizar indistintamente la palabra clave READWRITE o READ_ WRITE, pero READWRITE se quitará en una versión futura de Microsoft SQL Server por lo que se recomienda  READ_WRITE.

Nota. El estado de estas opciones se puede determinar mediante el examen de la columna is_read_only de la vista de catálogo sys.databases o la propiedad Updateability de la función DATABASEPROPERTYEX.

Febrero-2010
Pág. 8.4

Atrás  Inicio  Adelante





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies


© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.