Compartir a través de


Habilitar los requisitos previos de FileTables

Describe cómo habilitar los requisitos previos para crear y usar FileTables.

En este tema

Deseo…

  • Habilitar los requisitos previos de FileTable

  • Habilitar FILESTREAM en el nivel de instancia

    • Habilitar FILESTREAM en el nivel de instancia

    • Habilitar FILESTREAM a través del firewall

  • Proporcionar un grupo de archivos de FILESTREAM

  • Habilitar el acceso no transaccional en el nivel de base de datos

    • Comprobar si el acceso no transaccional está habilitado en las bases de datos

    • Cómo: habilitar el acceso no transaccional en el nivel de base de datos

  • Especificar un directorio para FileTables en el nivel de base de datos

    • Especificar un directorio para FileTables en el nivel de base de datos

    • Cómo: ver los nombres de directorio existentes para la instancia

    • Requisitos y restricciones para el directorio de base de datos

Habilitar los requisitos previos para FileTable

Para habilitar los requisitos previos para crear y usar FileTables, habilite los siguientes elementos:

  • En el nivel de instancia:

    • Habilitar FILESTREAM en el nivel de instancia
  • En el nivel de base de datos:

    • Proporcionar un grupo de archivos de FILESTREAM en el nivel de base de datos

    • Habilitar el acceso no transaccional en el nivel de base de datos

    • Especificar un directorio para FileTables en el nivel de base de datos

[ARRIBA]

Habilitar FILESTREAM en el nivel de instancia

Las FileTables amplían las capacidades de la característica FILESTREAM de SQL Server. Por lo tanto, debe habilitar FILESTREAM para el acceso de E/S de archivos en el nivel de Windows y en la instancia de SQL Server antes de poder crear y usar FileTables.

Cómo: habilitar FILESTREAM en el nivel de instancia

Para obtener información acerca de cómo habilitar FILESTREAM, vea Habilitar y configurar FILESTREAM.

Cuando se llama a sp_configure para habilitar FILESTREAM en el nivel de instancia, tiene que establecer la opción filestream_access_level en 2. Para obtener más información, vea filestream access level (opción de configuración del servidor).

[ARRIBA]

Habilitar FILESTREAM a través del firewall

Para obtener información acerca de cómo habilitar FILESTREAM a través del firewall, vea Configurar un Firewall para el acceso de FILESTREAM.

[ARRIBA]

Proporcionar un grupo de archivos de FILESTREAM en el nivel de base de datos

Para poder crear tablas FileTable en una base de datos, esta debe tener un grupo de archivos FILESTREAM. Para obtener más información acerca de este requisito previo, vea crear una base de datos habilitada para FILESTREAM.

[ARRIBA]

Habilitar el acceso no transaccional en el nivel de base de datos

Las FileTables permiten que las aplicaciones Windows obtengan un identificador de archivo de Windows en los datos FILESTREAM sin que sea necesaria ninguna transacción. Para permitir este acceso no transaccional a los archivos almacenados en SQL Server, debe especificar el nivel deseado de acceso no transaccional en el nivel de base de datos para cada base de datos que contenga FileTables.

Cómo: comprobar si el acceso no transaccional está habilitado en las bases de datos

Consulte la vista de catálogo sys.database_filestream_options (Transact-SQL) y compruebe las columnas non_transacted_access y non_transacted_access_desc.

SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
    FROM sys.database_filestream_options;
GO

[ARRIBA]

Cómo: habilitar el acceso no transaccional en el nivel de base de datos

Los niveles disponibles de acceso no transaccional son FULL, READ_ONLY y OFF.

  • Especificar el nivel de acceso no transaccional mediante Transact-SQL

    • Cuando cree una nueva base de datos, llame a la instrucción CREATE DATABASE (Transact-SQL) con la opción FILESTREAM de NON_TRANSACTED_ACCESS.

      CREATE DATABASE database_name
          WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' )
      
    • Cuando modifique una base de datos existente, llame a la instrucción ALTER DATABASE (Transact-SQL) con la opción FILESTREAM de NON_TRANSACTED_ACCESS.

      ALTER DATABASE database_name
          SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' )
      
  • Especificar el nivel de acceso no transaccional mediante SQL Server Management Studio
    Puede especificar el nivel de acceso no transaccional en el campo Acceso sin transacciones de FILESTREAM de la página Opciones del cuadro de diálogo Propiedades de la base de datos. Para obtener más información sobre este cuadro de diálogo, vea Propiedades de la base de datos (página Opciones).

[ARRIBA]

Especificar un directorio para FileTables en el nivel de base de datos

Cuando habilite el acceso no transaccional a archivos en el nivel de base de datos, puede proporcionar el nombre de un directorio opcionalmente al mismo tiempo mediante la opción DIRECTORY_NAME. Si no proporciona ningún directorio cuando habilite el acceso no transaccional, debe proporcionarlo posteriormente antes de que pueda crear FileTables en la base de datos.

En la jerarquía de carpetas de FileTable, este directorio de nivel de base de datos se convierte en el secundario del nombre del recurso compartido especificado para FILESTREAM en el nivel de instancia y en el primario de las FileTables creadas en la base de datos. Para obtener más información, vea Trabajar con directorios y rutas de acceso de FileTables.

Especificar un directorio para FileTables en el nivel de base de datos

El nombre que especifique debe ser único en toda la instancia para los directorios de base de datos.

  • Especificar un directorio para FileTables mediante Transact-SQL

    • Cuando cree una nueva base de datos, llame a la instrucción CREATE DATABASE (Transact-SQL) con la opción FILESTREAM de DIRECTORY_NAME.

      CREATE DATABASE database_name
          WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
      GO
      
    • Cuando modifique una base de datos existente, llame a la instrucción ALTER DATABASE (Transact-SQL) con la opción FILESTREAM de DIRECTORY_NAME. Cuando use estas opciones para cambiar el nombre del directorio, la base de datos se debe bloquear de forma exclusiva y sin identificadores de archivo abiertos.

      ALTER DATABASE database_name
          SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
      GO
      
    • Cuando adjunte una base de datos, llame a la instrucción CREATE DATABASE (Transact-SQL) con la opción FOR ATTACH y con la opción FILESTREAM de DIRECTORY_NAME.

      CREATE DATABASE database_name
          FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
      GO
      
    • Cuando restaure una base de datos, llame a la instrucción RESTORE (Transact-SQL) con la opción FILESTREAM de DIRECTORY_NAME.

      RESTORE DATABASE database_name
          WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
      GO
      
  • Especificar un directorio para las FileTables mediante SQL Server Management Studio
    Puede especificar el nombre de un directorio en el campo Nombre de directorio de FILESTREAM de la página Opciones del cuadro de diálogo Propiedades de la base de datos. Para obtener más información sobre este cuadro de diálogo, vea Propiedades de la base de datos (página Opciones).

[ARRIBA]

Cómo: ver los nombres de directorio existentes para la instancia

Para ver la lista de nombres de directorio existentes de la instancia, consulte la vista de catálogo sys.database_filestream_options (Transact-SQL) y compruebe la columna filestream_database_directory_name.

SELECT DB_NAME ( database_id ), directory_name
    FROM sys.database_filestream_options;
GO

[ARRIBA]

Requisitos y restricciones para el directorio de base de datos

  • Establecer el valor de DIRECTORY_NAME es opcional cuando llame a CREATE DATABASE o a ALTER DATABASE. Si no especifica ningún valor para DIRECTORY_NAME, el nombre del directorio continúa siendo NULL. Sin embargo, no puede crear FileTables en la base de datos hasta que especifique un valor para DIRECTORY_NAME en el nivel de base de datos.

  • El nombre de directorio que proporcione debe cumplir los requisitos del sistema de archivos de un nombre de directorio válido.

  • Cuando la base de datos contenga FileTables, no puede volver a establecer el valor de DIRECTORY_NAME en NULL.

  • Cuando adjunte o restaure una base de datos, se produce un error en la operación si la nueva base de datos tiene un valor para DIRECTORY_NAME que ya exista en la instancia de destino. Especifique un valor único para DIRECTORY_NAME cuando llame a CREATE DATABASE FOR ATTACH o a RESTORE DATABASE.

  • Cuando actualice una base de datos existente a SQL Server 2012, el valor de DIRECTORY_NAME es NULL.

  • Cuando habilite o deshabilite el acceso no transaccional en el nivel de base de datos, la operación no comprueba si se ha especificado el nombre del directorio o si es único.

  • Cuando quite una base de datos habilitada para FileTables, se quitan el directorio de nivel de base de datos y todas las estructuras de directorio de todas las FileTables contenidas en él.

[ARRIBA]