Sei sulla pagina 1di 74

Libros en pantalla de SQL Server CREATE DATABASE (Transact-SQL)

Enviar comentarios Vea tambin

Contraer todoExpandir todo Filtro de lenguaje: TodosFiltro de lenguaje: VariosFiltro de lenguaje: Visual BasicFiltro de lenguaje: C#Filtro de lenguaje: C++Filtro de lenguaje: J#Filtro de lenguaje: JScript

Crea una nueva base de datos y los archivos que se utilizan para almacenar la base de datos, crea una instantnea de base de datos, o adjunta una base de datos a partir de los archivos separados de una base de datos creada anteriormente. Convenciones de sintaxis de Transact-SQL

Sintaxis
CREATE DATABASE database_name [ ON [ PRIMARY ] [ <filespec> [ ,...n ] [ , <filegroup> [ ,...n ] ] [ LOG ON { <filespec> [ ,...n ] } ] ] [ COLLATE collation_name ] [ WITH <external_access_option> ] ] [;] To attach a database CREATE DATABASE database_name ON <filespec> [ ,...n ] FOR { ATTACH [ WITH <service_broker_option> ] | ATTACH_REBUILD_LOG } [;] <filespec> ::= { ( NAME = logical_file_name , FILENAME = 'os_file_name' [ , SIZE = size [ KB | MB | GB | TB ] ]

[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ] [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ] ) [ ,...n ] } <filegroup> ::= { FILEGROUP filegroup_name [ DEFAULT ] <filespec> [ ,...n ] } <external_access_option> ::= { DB_CHAINING { ON | OFF } | TRUSTWORTHY { ON | OFF } } <service_broker_option> ::= { ENABLE_BROKER | NEW_BROKER | ERROR_BROKER_CONVERSATIONS } Create a database snapshot CREATE DATABASE database_snapshot_name ON ( NAME = logical_file_name, FILENAME = 'os_file_name' ) [ ,...n ] AS SNAPSHOT OF source_database_name [;]

Notas
Cada vez que se crea, modifica o quita una base de datos de usuario, se debe hacer una copia de seguridad de la base de datos master. La instruccin CREATE DATABASE debe ejecutarse en modo de confirmacin automtica (el modo predeterminado de administracin de transacciones) y no se permite en una transaccin explcita o implcita. Para obtener ms informacin, vea Transacciones de confirmacin automtica. Se puede utilizar una instruccin CREATE DATABASE para crear una base de datos y los archivos donde se almacena. SQL Server implementa la instruccin CREATE DATABASE de la siguiente manera: 1. El SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) utiliza una copia de la base de datos model para inicializar la base de datos y sus metadatos.

2. Se asigna un GUID de Service Broker a la base de datos. 3. A continuacin, el Database Engine (Motor de base de datos) rellena el resto de la base de datos con pginas vacas, excepto las pginas que tengan datos internos que registren cmo se emplea el espacio en la base de datos. Para obtener ms informacin, vea Inicializacin de archivos de base de datos. En una instancia de SQL Server se pueden especificar 32.767 bases de datos como mximo. Cada base de datos tiene un propietario que puede realizar actividades especiales en ella. El propietario es el usuario que crea la base de datos. El propietario de la base de datos se puede cambiar mediante sp_changedbowner (Transact-SQL).

Archivos y grupos de archivos de base de datos


Cada base de datos tiene al menos 2 archivos (un archivo principal y un archivo de registro de transacciones) y un grupo de archivos. Para cada base de datos pueden especificarse hasta 32.767 archivos y 32.767 grupos de archivos. Para obtener ms informacin, vea Archivos y grupos de archivos fsicos de la base de datos. Cuando cree una base de datos, defina el mayor tamao posible para los archivos de datos segn la cantidad de datos mxima prevista para la base datos. Para obtener ms informacin, vea Usar archivos y grupos de archivos para administrar el crecimiento de las bases de datos. Se recomienda utilizar una red de rea de almacenamiento (SAN), una red basada en iSCSI o un disco conectado localmente para almacenar los archivos de base de datos de SQL Server, porque esta configuracin optimiza el rendimiento y la confiabilidad de SQL Server. De manera predeterminada, en SQL Server no se habilita el uso de archivos de base de datos en red (almacenados en un servidor de red o en un almacenamiento conectado a una red). No obstante, es posible crear una base de datos cuyos archivos estn basados en red mediante la marca de traza 1807. Para obtener informacin acerca de esta marca de traza e importantes consideraciones de rendimiento y mantenimiento, vea este sitio Web de Microsoft.

Instantneas de base de datos


La instruccin CREATE DATABASE permite crear una vista esttica de slo lectura, es decir, una instantnea de base de datos, de una base de datos existente, la base de datos de origen. Desde el punto de vista transaccional, una instantnea de base de datos es coherente con la base de datos de origen tal como se encontraba en el momento de crear la instantnea. Una base de datos de origen puede tener varias instantneas. Nota:

Cuando se crea una instantnea de base de datos, la instruccin CREATE DATABASE no puede hacer referencia a archivos de registro, archivos sin conexin, archivos de restauracin ni archivos inactivos. Si se produce un error al crear una instantnea de base de datos, se sospecha de la instantnea y debe eliminarse. Para obtener ms informacin, vea DROP DATABASE (Transact-SQL). Las instantneas se conservan hasta que se eliminan mediante DROP DATABASE. Para obtener ms informacin, vea Instantneas de base de datos.

Opciones de base de datos


Cuando se crea una base de datos, se establecen automticamente varias opciones de base de datos. Para obtener una lista de estas opciones y sus valores predeterminados, vea Configurar las opciones de la base de datos. Estas opciones se pueden modificar mediante la instruccin ALTER DATABASE.

Base de datos model y creacin de nuevas bases de datos


Todos los objetos definidos por el usuario de la base de datos model se copiarn en todas las bases de datos recin creadas. Puede agregar a la base de datos model todos los objetos (tablas, vistas, procedimientos almacenados, tipos de datos, etc.) que desee incluir en todas las bases de datos creadas recientemente. Cuando se especifica una instruccin CREATE DATABASE database_name sin parmetros de tamao adicionales, el archivo de datos principal pasa a tener el mismo tamao que el archivo principal de la base de datos model. A menos que se especifique FOR ATTACH, todas las bases de datos nuevas heredan los valores de las opciones de la base de datos model. Por ejemplo, la opcin de base de datos auto shrink es true en la base de datos model y en cualquier base de datos nueva que se cree. Si se cambian las opciones de la base de datos model, los nuevos valores de estas opciones se utilizarn en las nuevas bases de datos que se creen. Las operaciones de modificacin de la base de datos model no afectan a las bases de datos existentes. Si se especifica FOR ATTACH en la instruccin CREATE DATABASE, la nueva base de datos hereda los valores de las opciones de la base de datos original.

Ver la informacin de la base de datos


Se pueden utilizar vistas de catlogo, funciones del sistema y procedimientos almacenados del sistema para devolver informacin sobre bases de datos, archivos y grupos de archivos. Para obtener ms informacin, vea Ver los metadatos de una base de datos.

Argumentos
database_name Es el nombre de la nueva base de datos. Los nombres de base de datos deben ser nicos en una instancia de SQL Server y cumplir las reglas de los identificadores. database_name puede tener 128 caracteres como mximo, a menos que no se especifique un nombre lgico para el archivo de registro. Si no se especifica un nombre de archivo de registro lgico, SQL Server genera logical_file_name y os_file_name para el registro, anexando un sufijo a database_name. Esto limita database_name a 123 caracteres, por lo que el nombre de archivo lgico generado tiene como mximo 128 caracteres. Si no se especifica un nombre de archivo de datos, SQL Server utiliza database_name como logical_file_name y os_file_name. ON Especifica que los archivos de disco utilizados para almacenar las secciones de datos de la base de datos (archivos de datos) se definen explcitamente. ON es obligatorio cuando va seguido de una lista de elementos <filespec> separados por comas que definen los archivos de datos del grupo de archivos principal. Detrs de la lista de archivos del grupo de archivos principal se puede colocar una lista opcional de elementos <filegroup> separados por comas que definan los grupos de archivos de usuario y sus archivos. PRIMARY Especifica que la lista de elementos <filespec> asociada define el archivo principal. El primer archivo especificado en la entrada <filespec> del grupo de archivos principal se convierte en el archivo principal. Una base de datos slo puede tener un archivo principal. Para obtener ms informacin, vea Archivos y grupos de archivos fsicos de la base de datos. Si no se especifica PRIMARY, el primer archivo enumerado en la instruccin CREATE DATABASE se convierte en el archivo principal. LOG ON Especifica que los archivos de disco utilizados para almacenar el registro de la base de datos (archivos de registro) se definen explcitamente. LOG ON va seguido de una lista de elementos <filespec> separados por comas que definen los archivos de registro. Si no se especifica LOG ON, se crea automticamente un archivo de registro cuyo tamao es el 25 por ciento de la suma de los tamaos de

todos los archivos de datos de la base de datos, o 512 KB, lo que sea mayor. LOG ON no se puede especificar en una instantnea de base de datos. COLLATE collation_name Especifica la intercalacin predeterminada de la base de datos. El nombre de la intercalacin puede ser un nombre de intercalacin de Windows o un nombre de intercalacin de SQL. Si no se especifica, se asigna a la base de datos la intercalacin predeterminada de la instancia de SQL Server. No se puede especificar un nombre de intercalacin en una instantnea de base de datos. No se puede especificar un nombre de intercalacin con las clusulas FOR ATTACH o FOR ATTACH_REBUILD_LOG. Para obtener informacin acerca de cmo cambiar la intercalacin de una base de datos adjuntada, visite este sitio Web de Microsoft. Para obtener ms informacin acerca de los nombres de intercalacin de Windows y SQL, vea COLLATE (Transact-SQL). FOR ATTACH Especifica que la base de datos se crea adjuntando un conjunto existente de archivos de sistema operativo. Debe haber una entrada <filespec> que especifique el archivo principal. Las dems entradas <filespec> que son necesarias son las correspondientes a los archivos con una ruta de acceso diferente de la que tenan cuando la base de datos se cre por primera vez o se adjunt por ltima vez. Debe especificarse una entrada <filespec> para estos archivos. FOR ATTACH tiene los siguientes requisitos:

Todos los archivos de datos (MDF y NDF) deben estar disponibles. Si hay varios archivos de registro, todos ellos deben estar disponibles.

Si una base de datos de lectura o escritura tiene un nico archivo de registro que no est disponible actualmente y si la base de datos se cerr sin usuarios o transacciones abiertas antes de la operacin de adjuntar, FOR ATTACH regenera automticamente el archivo de registro y actualiza el archivo principal. En cambio, en el caso de una base de datos de slo lectura, el registro no se regenera, ya que el archivo principal no se puede actualizar. Por tanto, cuando se adjunta una base de datos de slo lectura cuyo registro no est disponible, es necesario suministrar el archivo o los archivos de registro en la clusula FOR ATTACH. En SQL Server 2005, los archivos de texto que formen parte de la base de datos que se va a adjuntar se adjuntan con la base de datos. Para especificar una nueva ruta de acceso al catlogo de texto, escriba la nueva ubicacin sin incluir el

nombre de archivo de texto del sistema operativo. Para obtener ms informacin, vea la seccin Ejemplos. FOR ATTACH no se puede especificar en una instantnea de base de datos. Para obtener ms informacin sobre cmo se adjuntan y separan las bases de datos, vea Adjuntar y separar una base de datos. Nota: Si la base de datos utiliza Service Broker, vea tambin <service_broker_option>. Para obtener informacin acerca de los permisos de archivo que se establecen al separar y adjuntar una base de datos, vea Proteger archivos de datos y de registro. Cuando adjunte una base de datos replicada que se copi en lugar de separarse, considere los siguientes puntos:

Si adjunta la base de datos a la misma versin e instancia de servidor que la base de datos original, no se requieren pasos adicionales. Si adjunta la base de datos a la misma instancia de servidor, pero con una versin actualizada, debe ejecutar sp_vupgrade_replication para actualizar la rplica una vez completada la operacin de adjuntar. Si adjunta la base de datos a una instancia de servidor diferente, sin importar la versin, debe ejecutar sp_removedbreplication para quitar la rplica una vez completada la operacin de adjuntar.

FOR ATTACH_REBUILD_LOG Especifica que la base de datos se crea adjuntando un conjunto existente de archivos de sistema operativo. Esta opcin est limitada a las bases de datos de lectura o escritura. Si no se encuentran uno o varios archivos de registro de transacciones, se vuelve a generar el archivo de registro. Debe haber una entrada <filespec> que especifique el archivo principal. Nota: Si los archivos de registro estn disponibles, el Database Engine (Motor de base de datos) utilizar esos archivos en lugar de volver a generar los archivos de registro. FOR ATTACH_REBUILD_LOG tiene los requisitos siguientes:

Un cierre limpio de la base de datos. Todos los archivos de datos (MDF y NDF) deben estar disponibles.

Importante: Esta operacin interrumpe la cadena de copias de seguridad del registro. Se recomienda realizar una copia de seguridad completa de la base de datos despus de finalizar la operacin. Para obtener ms informacin, vea BACKUP (Transact-SQL). Normalmente, FOR ATTACH_REBUILD_LOG se utiliza cuando se copia una base de datos de lectura o escritura con un registro grande en otro servidor donde la copia se va a utilizar en la mayora de los casos o nicamente para operaciones de lectura y, por tanto, necesitar menos espacio de registro que la base de datos original. FOR ATTACH_REBUILD_LOG no se puede especificar en una instantnea de base de datos. Para obtener ms informacin sobre cmo se adjuntan y separan las bases de datos, vea Adjuntar y separar una base de datos. <filespec> Controla las propiedades de archivo. NAME logical_file_name Especifica un nombre lgico para el archivo. NAME es obligatorio si se especifica FILENAME, excepto cuando se especifica una de las clusulas FOR ATTACH. logical_file_name Es el nombre lgico que se utiliza en SQL Server al hacer referencia al archivo. logical_file_name debe ser nico en la base de datos y cumplir las reglas de los identificadores. El nombre puede ser una constante de caracteres o Unicode, o un identificador regular o delimitado. FILENAME ' os_file_name ' Especifica el nombre de archivo (fsico) del sistema operativo. ' os_file_name ' Es la ruta de acceso y el nombre de archivo que el sistema operativo utiliza cuando se crea el archivo. El archivo debe residir en uno de los siguientes dispositivos: el servidor local en el que se ha instalado SQL Server, una red de rea de almacenamiento (SAN) o una red basada en iSCSI. La ruta de acceso especificada debe existir antes de ejecutar la instruccin CREATE DATABASE.

Para obtener ms informacin, vea "Archivos y grupos de archivos de base de datos" en la seccin Notas. Los parmetros SIZE, MAXSIZE y FILEGROWTH no se pueden establecer cuando se especifica una ruta UNC para el archivo. Si el archivo se encuentra en una particin sin procesar, os_file_name slo debe indicar la letra de la unidad de una particin sin procesar existente. Slo se puede crear un archivo de datos en cada particin sin procesar. Los archivos de datos no deben guardarse en sistemas de archivo comprimidos a menos que se trate de archivos secundarios de slo lectura o que la base de datos sea de slo lectura. Los archivos de registro no se deben almacenar en sistemas de archivo comprimidos. Para obtener ms informacin, vea Grupos de archivos de slo lectura. SIZE size Especifica el tamao del archivo. SIZE no se puede especificar si se especifica os_file_name como ruta UNC. size Es el tamao inicial del archivo. Cuando no se suministra size para el archivo principal, el Database Engine (Motor de base de datos) utiliza el tamao del archivo principal de la base de datos model. Cuando se especifica un archivo de datos secundario o un archivo de registro, pero no se especifica el argumento size para ese archivo, el Database Engine (Motor de base de datos) hace que el tamao del archivo sea de 1 MB. El tamao especificado para el archivo principal debe tener al menos el tamao del archivo principal de la base de datos model. Se pueden utilizar los sufijos kilobyte (KB), megabyte (MB), gigabyte (GB) o terabyte (TB). El valor predeterminado es MB. Especifique un nmero entero; no incluya decimales. MAXSIZE max_size Especifica el tamao mximo que puede alcanzar el archivo. MAXSIZE no se puede especificar si se especifica os_file_name como ruta UNC. max_size

Es el tamao mximo del archivo. Se pueden utilizar los sufijos KB, MB, GB y TB. El valor predeterminado es MB. Especifique un nmero entero; no incluya decimales. Si no se especifica max_size, el archivo aumenta hasta que el disco est lleno. UNLIMITED Especifica que el archivo crecer hasta que el disco est lleno. En SQL Server 2005, si se especifica un crecimiento ilimitado para un archivo de registro, su tamao mximo ser de 2 TB, y para un archivo de datos ser de 16 TB. FILEGROWTH growth_increment Especifica el incremento de crecimiento automtico del archivo. El valor FILEGROWTH de un archivo no puede exceder del valor MAXSIZE. FILEGROWTH no se puede especificar si se especifica os_file_name como ruta UNC. growth_increment Es la cantidad de espacio que se agrega al archivo siempre que se necesita ms espacio. El valor se puede especificar en MB, KB, GB, TB o como porcentaje (%). Si se especifica un nmero sin los sufijos MB, KB o %, el valor predeterminado es MB. Cuando se especifica %, el incremento de crecimiento es el porcentaje especificado del tamao del archivo en el momento en que tiene lugar el incremento. El tamao especificado se redondea a la cifra ms prxima a 64 KB. El valor 0 indica que el crecimiento automtico est desactivado y no se permite ms espacio. Si no se especifica FILEGROWTH, el valor predeterminado es 1 MB para los archivos de datos y el 10% para los archivos de registro, y el valor mnimo es 64 KB. Nota: En SQL Server 2005, el incremento de crecimiento predeterminado para los archivos de datos ha cambiado del 10% a 1 MB. El valor predeterminado para el archivo de registro (10%) permanece invariable. <filegroup> Controla las propiedades del grupo de archivos. Filegroup no se puede especificar en una instantnea de base de datos.

FILEGROUP filegroup_name Es el nombre lgico del grupo de archivos. filegroup_name filegroup_name debe ser nico en la base de datos y no puede ser los nombres PRIMARY ni PRIMARY_LOG suministrados por el sistema. El nombre puede ser una constante de caracteres o Unicode, o un identificador regular o delimitado. El nombre debe cumplir las reglas de los identificadores. DEFAULT Especifica que el grupo de archivos indicado es el grupo de archivos predeterminado de la base de datos. <external_access_option> Controla el acceso externo a la base de datos y desde sta. DB_CHAINING { ON | OFF } Si se especifica ON, la base de datos puede ser el origen o destino de una cadena de propiedad entre bases de datos. Si es OFF, la base de datos no puede participar en encadenamientos de propiedad entre bases de datos. El valor predeterminado es OFF. Importante: La instancia de SQL Server reconocer este valor si la opcin de servidor cross db ownership chaining es 0 (OFF). Si cross db ownership chaining es 1 (ON), todas las bases de datos de usuario pueden participar en cadenas de propiedad entre bases de datos, independientemente del valor de esta opcin. Esta opcin se establece mediante sp_configure. Para establecer esta opcin, debe pertenecer a la funcin fija de servidor sysadmin. La opcin DB_CHAINING no se puede establecer en estas bases de datos del sistema: master, model y tempdb. Para obtener ms informacin, vea Cadenas de propiedad. TRUSTWORTHY { ON | OFF } Cuando se especifica ON, los mdulos de base de datos (por ejemplo, vistas, funciones definidas por el usuario o procedimientos almacenados) que utilicen un

contexto de suplantacin pueden tener acceso a recursos externos a la base de datos. Si es OFF, los mdulos de base de datos en un contexto de suplantacin no pueden tener acceso a recursos externos a la base de datos. El valor predeterminado es OFF. TRUSTWORTHY se establece en OFF siempre que la base de datos se adjunta. De manera predeterminada, en la base de datos master, TRUSTWORTHY siempre est establecido en ON. En las bases de datos model y tempdb, TRUSTWORTHY siempre est establecido en OFF y este valor no se puede cambiar. Para establecer esta opcin, debe pertenecer a la funcin fija de servidor sysadmin. <service_broker_option> Controla las opciones de Service Broker en la base de datos. Slo se pueden especificar las opciones de Service Broker cuando se utiliza la clusula FOR ATTACH. ENABLE_BROKER Indica que se habilite Service Broker para la base de datos especificada. En otras palabras, is_broker_enabled se establece en True en la vista de catlogo sys.databases y se inicia la entrega de mensajes. NEW_BROKER Crea un nuevo service_broker_guid en sys.databases y la base de datos restaurada. ERROR_BROKER_CONVERSATIONS Finaliza todas las conversaciones con errores que indican que se ha creado una copia de Service Broker. database_snapshot_name Es el nombre de la nueva instantnea de base de datos. Los nombres de instantnea de base de datos deben ser nicos en una instancia de SQL Server y deben cumplir las reglas de los identificadores. database_snapshot_name puede tener 128 caracteres como mximo.

ON ( NAME = logical_file_name, FILENAME = 'os_file_name' ) [ ,... n ] Para la creacin de una instantnea de base de datos, especifica una lista de archivos de la base de datos de origen. Para que la instantnea funcione, todos los archivos de datos deben especificarse individualmente. Sin embargo, no se permiten archivos de registro para las instantneas de base de datos. Para obtener las descripciones de NAME y FILENAME y sus valores, vea las descripciones de los valores equivalentes de <filespec>. Nota: Cuando se crea una instantnea de base de datos, no se admiten las dems opciones de <filespec> ni la palabra clave PRIMARY. AS SNAPSHOT OF source_database_name Indica que la base de datos que se va a crear es una instantnea de la base de datos de origen especificada en source_database_name. La instantnea y la base de datos de origen deben estar en la misma instancia. Para obtener ms informacin, vea "Instantneas de base de datos" en la seccin Notas.

Permisos
Requiere el permiso CREATE DATABASE, CREATE ANY DATABASE o ALTER ANY DATABASE. Para mantener el control de la utilizacin del disco en una instancia de SQL Server, el permiso para crear bases de datos suele limitarse a un nmero reducido de cuentas de inicio de sesin.

Permisos en archivos de datos y de registro


En SQL Server 2005, algunos permisos se establecen en los archivos de datos y de registro de cada base de datos. Siempre que se realizan las operaciones siguientes en una base de datos, se establecen estos permisos: Creada Adjuntada Separada Modificada para agregar un nuevo archivo Copia de seguridad Restaurada

Los permisos evitan que los archivos se modifiquen por accidente si residen en un directorio sin restriccin de permisos. Para obtener ms informacin, vea Proteger archivos de datos y de registro.

Nota: Microsoft SQL Server 2005 Express Edition no establece permisos en archivos de datos y de registro.

Ejemplos
A. Crear una base de datos sin especificar archivos
En este ejemplo se crea la base de datos mytest, y los archivos principal y de registro de transacciones correspondientes. Debido a que la instruccin no tiene elementos <filespec>, el archivo principal de la base de datos tiene el tamao del archivo principal de la base de datos model. El registro de transacciones se establece en el mayor de estos valores: 512 KB o el 25% del tamao del archivo de datos principal. Como no se ha especificado MAXSIZE, los archivos pueden crecer hasta llenar todo el espacio disponible en el disco. Copiar cdigo
USE master; GO IF DB_ID (N'mytest') IS NOT NULL DROP DATABASE mytest; GO CREATE DATABASE mytest; GO -- Verify the database files and sizes SELECT name, size, size*1.0/128 AS [Size in MBs] FROM sys.master_files WHERE name = N'mytest'; GO

B. Crear una base de datos que especifica los archivos de datos y de registro de transacciones
En el ejemplo siguiente se crea la base de datos Sales. Debido a que no se utiliza la palabra clave PRIMARY, el primer archivo (Sales_dat) se convierte en el archivo principal. Como no se especifica MB ni KB en el parmetro SIZE del archivo Sales_dat, se utiliza MB y el tamao se asigna en megabytes. El tamao del archivo Sales_log se asigna en megabytes porque el sufijo MB se ha indicado explcitamente en el parmetro SIZE. Copiar cdigo
USE master; GO IF DB_ID (N'Sales') IS NOT NULL DROP DATABASE Sales;

GO -- Get the SQL Server data path DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- execute the CREATE DATABASE statement EXECUTE ('CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = '''+ @data_path + 'saledat.mdf'', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = '''+ @data_path + 'salelog.ldf'', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )' ); GO GO

C. Crear una base de datos mediante la especificacin de mltiples archivos de datos y de registro de transacciones
En el ejemplo siguiente se crea la base de datos Archive, que tiene tres archivos de datos de 100-MB y dos archivos de registro de transacciones de 100-MB. El archivo principal es el primer archivo de la lista y se especifica explcitamente con la palabra clave PRIMARY. Los archivos de registro de transacciones se especifican a continuacin de las palabras clave LOG ON. Tenga en cuenta las extensiones usadas para los archivos en la opcin FILENAME: .mdf se usa para archivos de datos principales, .ndf para archivos de datos secundarios y .ldf para archivos de registro de transacciones. Copiar cdigo
USE master; GO IF DB_ID (N'Archive') IS NOT NULL DROP DATABASE Archive; GO -- Get the SQL Server data path DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- execute the CREATE DATABASE statement

EXECUTE ('CREATE DATABASE Archive ON PRIMARY (NAME = Arch1, FILENAME = '''+ @data_path + 'archdat1.mdf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch2, FILENAME = '''+ @data_path + 'archdat2.ndf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch3, FILENAME = '''+ @data_path + 'archdat3.ndf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON (NAME = Archlog1, FILENAME = '''+ @data_path + 'archlog1.ldf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), (NAME = Archlog2, FILENAME = '''+ @data_path + 'ldf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)' ); GO

D. Crear una base de datos con grupos de archivos


En el ejemplo siguiente se crea la base de datos Sales, que tiene los siguientes grupos de archivos:

El grupo de archivos principal, con los archivos Spri1_dat y Spri2_dat. El incremento de FILEGROWTH de estos archivos se especifica como 15%. Un grupo de archivos denominado SalesGroup1, con los archivos SGrp1Fi1 y SGrp1Fi2. Un grupo de archivos denominado SalesGroup2, con los archivos SGrp2Fi1 y SGrp2Fi2. Copiar cdigo

USE master; GO IF DB_ID (N'Sales') IS NOT NULL DROP DATABASE Sales; GO

-- Get the SQL Server data path DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- execute the CREATE DATABASE statement EXECUTE ('CREATE DATABASE Sales ON PRIMARY ( NAME = SPri1_dat, FILENAME = '''+ @data_path + 'SPri1dat.mdf'', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), ( NAME = SPri2_dat, FILENAME = '''+ @data_path + 'SPri2dt.ndf'', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), FILEGROUP SalesGroup1 ( NAME = SGrp1Fi1_dat, FILENAME = '''+ @data_path + 'SG1Fi1dt.ndf'', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), ( NAME = SGrp1Fi2_dat, FILENAME = '''+ @data_path + 'SG1Fi2dt.ndf'', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), FILEGROUP SalesGroup2 ( NAME = SGrp2Fi1_dat, FILENAME = '''+ @data_path + 'SG2Fi1dt.ndf'', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), ( NAME = SGrp2Fi2_dat, FILENAME = '''+ @data_path + 'SG2Fi2dt.ndf'', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = '''+ @data_path + 'salelog.ldf'', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )' ); GO

E. Adjuntar una base de datos


En el ejemplo siguiente se separa la base de datos Archive creada en el ejemplo D y, despus, se adjunta mediante la clusula FOR ATTACH. La base de datos Archive se ha

definido para contener varios archivos de datos y de registro. Sin embargo, dado que la ubicacin de los archivos no ha cambiado desde que se crearon, slo es necesario especificar el archivo principal en la clusula FOR ATTACH. En SQL Server 2005, los archivos de texto que formen parte de la base de datos que se va a adjuntar se adjuntan con la base de datos. Copiar cdigo
USE master; GO sp_detach_db Archive; GO -- Get the SQL Server data path DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- Execute CREATE DATABASE FOR ATTACH statement EXEC ('CREATE DATABASE Archive ON (FILENAME = '''+ @data_path + 'archdat1.mdf'') FOR ATTACH'); GO

F. Crear una instantnea de base de datos


En el ejemplo siguiente se crea la instantnea de base de datos sales_snapshot0600. Debido a que la instantnea de base de datos es de slo lectura, no se puede especificar un archivo de registro. De acuerdo con la sintaxis, se especifican todos los archivos de la base de datos de origen, pero los grupos de archivos no se especifican. La base de datos de origen en este ejemplo es la base de datos Sales creada en el ejemplo D. Copiar cdigo
USE master; GO -- Get the SQL Server data path DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- execute the CREATE DATABASE statement EXECUTE ( 'CREATE DATABASE sales_snapshot0600 ON ( NAME = SPri1_dat, FILENAME = '''+ @data_path + 'SPri1dat_0600.ss''), ( NAME = SPri2_dat, FILENAME = '''+ @data_path + 'SPri2dt_0600.ss''), ( NAME = SGrp1Fi1_dat, FILENAME = '''+ @data_path +

'SG1Fi1dt_0600.ss''), ( NAME = SGrp1Fi2_dat, FILENAME = '''+ @data_path + 'SG1Fi2dt_0600.ss''), ( NAME = SGrp2Fi1_dat, FILENAME = '''+ @data_path + 'SG2Fi1dt_0600.ss''), ( NAME = SGrp2Fi2_dat, FILENAME = '''+ @data_path + 'SG2Fi2dt_0600.ss'') AS SNAPSHOT OF Sales'); GO

G. Crear una base de datos y especificar un nombre de intercalacin y sus opciones


En el ejemplo siguiente se crea la base de datos MyOptionsTest. Se especifica un nombre de intercalacin y las opciones TRUSTYWORTHY y DB_CHAINING se establecen en ON. Copiar cdigo
USE master; GO IF DB_ID (N'MyOptionsTest') IS NOT NULL DROP DATABASE MyOptionsTest; GO CREATE DATABASE MyOptionsTest COLLATE French_CI_AI WITH TRUSTWORTHY ON, DB_CHAINING ON; GO --Verifying collation and option settings. SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on FROM sys.databases WHERE name = N'MyOptionsTest'; GO

H. Adjuntar un catlogo de texto que se ha movido


En el ejemplo siguiente se adjunta el catlogo de texto AdvWksFtCat junto con los archivos de datos y de registro de AdventureWorks. En el ejemplo, el catlogo de texto se mueve desde su ubicacin predeterminada hasta c:\myFTCatalogs. Los archivos de datos y de registro permanecen en su ubicacin predeterminada. Copiar cdigo
USE master; GO --Detach the AdventureWorks database sp_detach_db AdventureWorks; GO -- Physically move the full text catalog to the new location. --Attach the AdventureWorks database and specify the new location of the full-text catalog. CREATE DATABASE AdventureWorks ON

(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf'), (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_log.ldf'), (FILENAME = 'c:\myFTCatalogs\AdvWksFtCat') FOR ATTACH; GO

Vea tambin
Referencia ALTER DATABASE (Transact-SQL) DROP DATABASE (Transact-SQL) sp_changedbowner (Transact-SQL) sp_detach_db (Transact-SQL) sp_removedbreplication (Transact-SQL)

Libros en pantalla de SQL Server ALTER DATABASE (Transact-SQL)

Enviar comentarios Vea tambin

Contraer todoExpandir todo Filtro de lenguaje: TodosFiltro de lenguaje: VariosFiltro de lenguaje: Visual BasicFiltro de lenguaje: C#Filtro de lenguaje: C++Filtro de lenguaje: J#Filtro de lenguaje: JScript

Modifica una base de datos o los archivos y grupos de archivos asociados a la base de datos. Agrega o quita archivos y grupos de archivos en una base de datos, cambia los atributos de una base de datos o de sus archivos y grupos de archivos, cambia la intercalacin de base de datos y establece las opciones de base de datos. Las instantneas de bases de datos no se pueden modificar. Para modificar las opciones de base de datos asociadas a la rplica, utilice sp_replicationdboption. Convenciones de sintaxis de Transact-SQL

Sintaxis
ALTER DATABASE database_name { <add_or_modify_files> | <add_or_modify_filegroups> | <set_database_options> | MODIFY NAME = new_database_name | COLLATE collation_name } [;] <add_or_modify_files>::= { ADD FILE <filespec> [ ,...n ] [ TO FILEGROUP { filegroup_name | DEFAULT } ] | ADD LOG FILE <filespec> [ ,...n ] | REMOVE FILE logical_file_name | MODIFY FILE <filespec> } <filespec>::=

( NAME = logical_file_name [ , NEWNAME = new_logical_name ] [ , FILENAME = 'os_file_name' ] [ , SIZE = size [ KB | MB | GB | TB ] ] [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ] [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB| % ] ] [ , OFFLINE ] ) <add_or_modify_filegroups>::= { | ADD FILEGROUP filegroup_name | REMOVE FILEGROUP filegroup_name | MODIFY FILEGROUP filegroup_name { <filegroup_updatability_option> | DEFAULT | NAME = new_filegroup_name } } <filegroup_updatability_option>::= { { READONLY | READWRITE } | { READ_ONLY | READ_WRITE } } <set_database_options>::= SET { { <optionspec> [ ,...n ] [ WITH <termination> ] } | ALLOW_SNAPSHOT_ISOLATION {ON | OFF } | READ_COMMITTED_SNAPSHOT {ON | OFF } [ WITH <termination> ] } <optionspec>::= { <db_state_option> | <db_user_access_option> | <db_update_option> | <external_access_option> | <cursor_option> | <auto_option> | <sql_option> | <recovery_option> | <database_mirroring_option> | <supplemental_logging_option> | <service_broker_option> | <date_correlation_optimization_option> | <parameterization_option> } <db_state_option> ::= { ONLINE | OFFLINE | EMERGENCY } <db_user_access_option> ::= { SINGLE_USER | RESTRICTED_USER | MULTI_USER } <db_update_option> ::=

{ READ_ONLY | READ_WRITE } <external_access_option> ::= DB_CHAINING { ON | OFF } | TRUSTWORTHY { ON | OFF } } <cursor_option> ::= { CURSOR_CLOSE_ON_COMMIT { ON | OFF } | CURSOR_DEFAULT { LOCAL | GLOBAL } } <auto_option> ::= { AUTO_CLOSE { ON | OFF } | AUTO_CREATE_STATISTICS { ON | OFF } | AUTO_SHRINK { ON | OFF } | AUTO_UPDATE_STATISTICS { ON | OFF } | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF } }

<sql_option> ::= { ANSI_NULL_DEFAULT { ON | OFF } | ANSI_NULLS { ON | OFF } | ANSI_PADDING { ON | OFF } | ANSI_WARNINGS { ON | OFF } | ARITHABORT { ON | OFF } | CONCAT_NULL_YIELDS_NULL { ON | OFF } | NUMERIC_ROUNDABORT { ON | OFF } | QUOTED_IDENTIFIER { ON | OFF } | RECURSIVE_TRIGGERS { ON | OFF } } <recovery_option> ::= { RECOVERY { FULL | BULK_LOGGED | SIMPLE } | TORN_PAGE_DETECTION { ON | OFF } | PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE } } <database_mirroring_option> ::= { <partner_option> | <witness_option> } <partner_option> ::= PARTNER { = 'partner_server' | FAILOVER | FORCE_SERVICE_ALLOW_DATA_LOSS | OFF | RESUME | SAFETY { FULL | OFF } | SUSPEND | REDO_QUEUE ( integer { KB | MB | GB } | UNLIMITED ) | TIMEOUT integer } <witness_option> ::=

WITNESS { = 'witness_server' | OFF } <supplemental_logging_option> ::= SUPPLEMENTAL_LOGGING { ON | OFF } <service_broker_option> ::= { ENABLE_BROKER | DISABLE_BROKER | NEW_BROKER | ERROR_BROKER_CONVERSATIONS } <date_correlation_optimization_option> ::= { DATE_CORRELATION_OPTIMIZATION { ON | OFF } } <parameterization_option> ::= { PARAMETERIZATION { SIMPLE | FORCED } } <termination> ::= { ROLLBACK AFTER integer [ SECONDS ] | ROLLBACK IMMEDIATE | NO_WAIT }

Notas
Para quitar una base de datos, utilice DROP DATABASE. Para cambiar el nombre de una base de datos, use la opcin MODIFY NAME = new_database_name con ALTER DATABASE. Para reducir el tamao de una base de datos, utilice DBCC SHRINKDATABASE. No se puede agregar o quitar un archivo mientras se est ejecutando una instruccin BACKUP. Para cada base de datos se puede especificar un mximo de 32.767 archivos y 32.767 grupos de archivos. La instruccin ALTER DATABASE se debe ejecutar en el modo de confirmacin automtica (modo de administracin de transacciones predeterminado) y no se permite en

una transaccin explcita o implcita. Para obtener ms informacin, vea Transacciones de confirmacin automtica. En SQL Server 2005, el estado de un archivo de base de datos (por ejemplo, con conexin o sin conexin) se mantiene con independencia del estado de la base de datos. Para obtener ms informacin, vea Estados de los archivos. El estado de los archivos de un grupo de archivos determina la disponibilidad de todo el grupo de archivos. Para que un grupo de archivos est disponible, todos los archivos del grupo deben tener conexin. Si un grupo de archivos no tiene conexin, todos los intentos de acceso al grupo de archivos por parte de una instruccin SQL generan un error. Al generar un plan de consultas para las instrucciones SELECT, el optimizador de consultas evita los ndices no agrupados y las vistas indizadas que residen en los grupos de archivos sin conexin. Esto permite que las instrucciones se ejecuten correctamente. No obstante, si el grupo de archivos sin conexin contiene el montn o el ndice agrupado de la tabla de destino, las instrucciones SELECT generan un error. Adems, todas las instrucciones INSERT, UPDATE o DELETE que modifican una tabla con un ndice en un grupo de archivos sin conexin generan un error.

Configurar opciones
Para recuperar la configuracin actual de las opciones de base de datos, utilice la vista de catlogo sys.databases o DATABASEPROPERTYEX. Para obtener una lista de los valores predeterminados asignados a la base de datos durante su creacin, vea Configurar las opciones de la base de datos. Una vez configurada una opcin de la base de datos, la modificacin surte efecto de inmediato. Para cambiar los valores predeterminados de cualquiera de las opciones de las bases de datos que se acaban de crear, cambie la opcin adecuada en la base de datos model. No todas las opciones de base de datos utilizan la clusula WITH <termination> o se pueden especificar en combinacin con otras opciones. En la siguiente tabla se incluyen estas opciones, su estado y el estado de terminacin. Se puede especificar con otras opciones S S S S S S S Puede utilizar la clusula WITH <termination> S S S No No No No

Categora de opciones <db_state_option> <db_user_access_option> db_update_option> <external_access_option> <cursor_option> <auto_option> <sql_option>

<recovery_option> S <database_mirroring_option> No ALLOW_SNAPSHOT_ISOLATION No READ_COMMITED_SNAPSHOT No <supplemental_logging_option> S <service_broker_option> S DATE_CORRELATION_OPTIMIZATION S UNIVERSAL_PARAMETERIZATION S

No No No S No No S S

Mover archivos
En SQL Server 2005, puede mover los archivos de sistema, de datos definidos por el usuario o de registro si especifica la ubicacin nueva en FILENAME. Esto puede resultar til en los siguientes escenarios:

Recuperacin de errores. Por ejemplo, la base de datos est en modo de sospecha o cerrada debido a un error del hardware. Reubicacin planeada. Reubicacin para mantenimiento de disco programado.

Para obtener ms informacin, vea Mover archivos de base de datos.

Inicializar archivos
De forma predeterminada, los archivos de datos y registro se inicializan mediante el relleno de los archivos con ceros al realizar una de las siguientes operaciones:

Crear una base de datos Agregar archivos a una base de datos existente Aumentar el tamao de un archivo existente Restaurar una base de datos o un grupo de archivos

En SQL Server 2005, los archivos de datos se pueden inicializar de forma instantnea. Esto permite la ejecucin rpida de estas operaciones con los archivos. Para obtener ms informacin, vea Inicializacin de archivos de base de datos.

Cambiar la intercalacin de la base de datos


Antes de aplicar otra intercalacin a una base de datos, asegrese de que se cumplen las siguientes condiciones:

1. Es el nico usuario que utiliza actualmente la base de datos. 2. Ningn objeto enlazado a un esquema depende de la intercalacin de la base de datos. Si los siguientes objetos, los cuales dependen de la intercalacin de la base de datos, existen en la base de datos, la instruccin ALTER DATABASE database_name COLLATE genera un error. SQL Server devuelve un mensaje de error para cada objeto que bloquee la accin ALTER:
o

Vistas y funciones definidas por el usuario creadas con SCHEMABINDING Columnas calculadas Restricciones CHECK Funciones de valores de tabla que devuelven tablas con columnas de caracteres con intercalaciones heredadas de la intercalacin predeterminada de la base de datos

o o o

3. Cambiar la intercalacin de la base de datos no crea duplicados entre los nombres del sistema para los objetos de base de datos. Los siguientes espacios de nombres pueden provocar errores en el cambio de la intercalacin de la base de datos si se producen nombres duplicados en la intercalacin cambiada:
o

Nombres de objetos, como un procedimiento, tabla, desencadenador o vista Nombres de esquemas Entidades de seguridad, como un grupo, funcin o usuario Nombres de tipo escalar, como los tipos definidos por el usuario y por el sistema Nombres de catlogos de texto Nombres de columnas o parmetros en un objeto Nombres de ndices en una tabla

o o o

o o o

Los nombres duplicados resultantes de la nueva intercalacin provocarn que la accin de cambio no se ejecute correctamente y SQL Server devolver un mensaje de error que especifica el espacio de nombres donde se ha encontrado el duplicado.

Ver informacin de base de datos


Puede utilizar vistas de catlogo, funciones del sistema y procedimientos almacenados del sistema para devolver informacin sobre las bases de datos, los archivos y los grupos de archivos. Para obtener ms informacin, vea Ver los metadatos de una base de datos.

Argumentos
database_name Es el nombre de la base de datos que se va a modificar. MODIFY NAME = new_database_name Cambia el nombre de la base de datos por el nombre especificado como new_database_name. COLLATE collation_name Especifica la intercalacin para la base de datos. collation_name puede ser un nombre de intercalacin de Windows o un nombre de intercalacin de SQL. Si no se especifica, se asigna a la base de datos la intercalacin de la instancia de SQL Server. Para obtener ms informacin acerca de los nombres de intercalacin de Windows y SQL, vea COLLATE (Transact-SQL). <add_or_modify_files>::= Especifica el archivo que se va a agregar, quitar o modificar. ADD FILE Agrega un archivo a la base de datos. TO FILEGROUP { filegroup_name | DEFAULT } Especifica el grupo de archivos al que se agrega el archivo especificado. Si se especifica DEFAULT, el archivo se agrega al grupo de archivos predeterminado actual. Para mostrar los grupos de archivos actuales y qu grupo de archivos es el predeterminado, utilice la vista de catlogo sys.filegroups. ADD LOG FILE Agrega un archivo de registro a la base de datos especificada.

REMOVE FILE logical_file_name Quita la descripcin del archivo lgico de una instancia de SQL Server y elimina el archivo fsico. El archivo no se puede quitar a menos que est vaco. logical_file_name Es el nombre lgico utilizado en SQL Server cuando se hace referencia al archivo. MODIFY FILE Especifica el archivo que se debe modificar. Slo se puede cambiar una propiedad <especificacinDeArchivo> cada vez. NAME se debe especificar siempre en <especificacinDeArchivo> para identificar el archivo que se va a modificar. Si se especifica SIZE, el nuevo tamao debe ser mayor que el tamao actual del archivo. Para modificar el nombre lgico de un archivo de datos o de un archivo de registro, especifique el nombre del archivo lgico que se va a cambiar en la clusula NAME y especifique el nombre lgico nuevo para el archivo en la clusula NEWNAME. Por ejemplo: Copiar cdigo
MODIFY FILE ( NAME = logical_file_name, NEWNAME = new_logical_name )

Para mover un archivo de datos o un archivo de registro a otra ubicacin, especifique el nombre del archivo lgico actual en la clusula NAME y especifique la ruta y el nombre del archivo del sistema operativo nuevos en la clusula FILENAME. Por ejemplo: Copiar cdigo
MODIFY FILE ( NAME = logical_file_name, FILENAME = ' new_path/os_file_name ' )

Si mueve un catlogo de texto, especifique la ruta nueva en la clusula FILENAME. No especifique el nombre del archivo del sistema operativo. Para obtener ms informacin, vea Mover archivos de base de datos. <filespec>::= Controla las propiedades del archivo. NAME logical_file_name

Especifica el nombre lgico del archivo. logical_file_name Es el nombre lgico utilizado en una instancia de SQL Server al hacer referencia al archivo. NEWNAME new_logical_file_name Especifica un nombre lgico nuevo para el archivo. new_logical_file_name Es el nombre que reemplaza el nombre del archivo lgico existente. El nombre debe ser nico en la base de datos y debe cumplir las mismas reglas que los identificadores. El nombre puede ser una constante de caracteres o Unicode, un identificador regular o un identificador delimitado. Para obtener ms informacin, vea Usar identificadores como nombres de objeto. FILENAME ' os_file_name ' Especifica un nombre de archivo (fsico) del sistema operativo. ' os_file_name ' Es la ruta de acceso y el nombre de archivo que el sistema operativo utiliza al crear el archivo. El archivo debe residir en el servidor donde est instalado SQL Server. La ruta especificada debe existir antes de ejecutar la instruccin ALTER DATABASE. Los parmetros SIZE, MAXSIZE y FILEGROWTH no se pueden establecer si se ha especificado una ruta UNC para el archivo. Los archivos de datos no se pueden utilizar en los sistemas de archivos comprimidos a menos que sean archivos secundarios de slo lectura o si la base de datos es de slo lectura. Los archivos de registro no se pueden utilizar en sistemas de archivos comprimidos. Para obtener ms informacin, vea Grupos de archivos de slo lectura. Si el archivo se encuentra en una particin sin procesar, os_file_name slo debe indicar la letra de la unidad de una particin sin procesar existente. En cada particin sin formato slo se puede utilizar un archivo. SIZE size Especifica el tamao del archivo.

size Es el tamao del archivo. Cuando se especifica con ADD FILE, size es el tamao inicial del archivo. Si se especifica con MODIFY FILE, size es el nuevo tamao de archivo y debe ser mayor que el tamao de archivo actual. Cuando no se suministra size para el archivo principal, el SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) utiliza el tamao del archivo principal de la base de datos model. Cuando se especifica un archivo de datos secundario o un archivo de registro, pero no se especifica el argumento size para ese archivo, el Database Engine (Motor de base de datos) hace que el tamao del archivo sea de 1 MB. Se pueden utilizar los sufijos KB, MB, GB y TB para especificar kilobytes, megabytes, gigabytes o terabytes. El valor predeterminado es MB. Especifique un nmero entero y no incluya decimales. Para especificar una fraccin de un megabyte, convierta el valor a kilobytes; para ello, multiplique el nmero por 1024. Por ejemplo, especifique 1536 KB en vez de 1,5 MB (1,5 x 1024 = 1536). MAXSIZE { max_size| UNLIMITED } Especifica el tamao mximo que puede alcanzar el archivo. max_size Es el tamao mximo del archivo. Se pueden utilizar los sufijos KB, MB, GB y TB para especificar kilobytes, megabytes, gigabytes o terabytes. El valor predeterminado es MB. Especifique un nmero entero y no incluya decimales. Si no se especifica max_size, el tamao de archivo aumenta hasta que el disco est lleno. UNLIMITED Especifica que el tamao del archivo aumenta hasta que el disco est lleno. En SQL Server 2005, un archivo de registro especificado con un aumento ilimitado tiene un tamao mximo de 2 TB y un archivo de datos tiene un tamao mximo de 16 TB. FILEGROWTH growth_increment Especifica el aumento automtico del archivo. El valor FILEGROWTH de un archivo no puede superar el valor MAXSIZE. growth_increment

Es la cantidad de espacio que se agrega al archivo cada vez que se necesita ms espacio. El valor se puede especificar en MB, KB, GB, TB o bien como un porcentaje (%). Si se especifica un nmero sin los sufijos MB, KB o %, el valor predeterminado es MB. Cuando se especifica %, el incremento de tamao es el porcentaje especificado del tamao del archivo en el momento en que tiene lugar el incremento. El tamao especificado se redondea al mltiplo de 64 KB ms cercano. El valor 0 indica que el aumento automtico se establece en OFF y no se permite ningn espacio adicional. Si no se especifica FILEGROWTH, el valor predeterminado es 1 MB para los archivos de datos y 10% para los archivos de registro, y el valor mnimo es 64 KB. Nota: En SQL Server 2005, el incremento de tamao predeterminado de los archivos de datos ha cambiado de 10% a 1 MB. El valor predeterminado del 10% del archivo de registro no vara. OFFLINE Establece el archivo sin conexin e impide el acceso a todos los objetos del grupo de archivos. Advertencia: Utilice esta opcin slo si el archivo est daado y se puede restaurar. Un archivo establecido en OFFLINE slo se puede establecer con conexin mediante la restauracin del archivo a partir de una copia de seguridad. Para obtener ms informacin acerca de cmo restaurar un solo archivo, vea RESTORE (Transact-SQL). <add_or_modify_filegroups>::= Agrega, modifica o quita un grupo de archivos de la base de datos. ADD FILEGROUP filegroup_name Agrega un grupo de archivos a la base de datos. REMOVE FILEGROUP filegroup_name Quita un grupo de archivos de la base de datos. El grupo de archivos no se puede quitar a menos que est vaco. Para quitar todos los archivos del grupo de

archivos en primer lugar, mueva los archivos a otro grupo de archivos o, si los archivos estn vacos, quite los archivos. MODIFY FILEGROUP filegroup_name, { <filegroup_updatability_option> , | DEFAULT, | NAME = new_filegroup_name , } Modifica el grupo de archivos al establecer el estado en READ_ONLY o READ_WRITE, lo que hace que el grupo de archivos se convierta en predeterminado para la base de datos o que se cambie el nombre del grupo de archivos. <filegroup_updatability_option> Establece la propiedad de slo lectura o slo lectura y escritura para el grupo de archivos. DEFAULT Cambia el grupo de archivos predeterminado de la base de datos a filegroup_name. Slo un grupo de archivos de la base de datos puede ser el grupo de archivos predeterminado. Para obtener ms informacin, vea Descripcin de archivos y grupos de archivos. NAME = new_filegroup_name Cambia el nombre del grupo de archivos a new_filegroup_name. <filegroup_updatability_option>::= Establece la propiedad de slo lectura o slo lectura y escritura para el grupo de archivos. READ_ONLY | READONLY Especifica que el grupo de archivos es de slo lectura. No se permite la actualizacin de los objetos del mismo. El grupo de archivos principal no puede ser de slo lectura. Para cambiar este estado, debe tener acceso exclusivo a la base de datos. Para obtener ms informacin, vea la clusula SINGLE_USER. Una base de datos de slo lectura no permite realizar modificaciones en los datos:

Se omite la recuperacin automtica cuando se inicia el sistema. No es posible reducir la base de datos. No se produce ningn bloqueo en las bases de datos de slo lectura. Esto puede acelerar el rendimiento de las consultas.

Nota: La palabra clave READONLY se quitar en una versin futura de Microsoft SQL Server. Evite el uso de READONLY en los nuevos trabajos de desarrollo y piense en modificar las aplicaciones que utilizan READONLY actualmente. Utilice READ_ONLY en su lugar. READ_WRITE | READWRITE Especifica que el grupo es READ_WRITE. Pueden realizarse actualizaciones en los objetos del grupo de archivos. Para cambiar este estado, debe tener acceso exclusivo a la base de datos. Para obtener ms informacin, vea la clusula SINGLE_USER. Nota: La palabra clave READWRITE se quitar en una versin futura de Microsoft SQL Server. Evite el uso de READWRITE en los nuevos trabajos de desarrollo y piense en modificar las aplicaciones que utilizan READWRITE actualmente. Utilice READ_WRITE en su lugar. El estado de estas opciones se puede determinar mediante el examen de la columna is_read_only de la vista de catlogo sys.databases o la propiedad Updateability de la funcin DATABASEPROPERTYEX. <db_state_option>::= Controla el estado de la base de datos. OFFLINE La base de datos est cerrada, se ha cerrado correctamente y se ha marcado como sin conexin. La base de datos no se puede modificar mientras est desconectada. ONLINE La base de datos est abierta y disponible para su uso. EMERGENCY La base de datos est marcada como READ_ONLY, el registro est deshabilitado y el acceso est limitado a los miembros de la funcin fija de servidor sysadmin. EMERGENCY se utiliza principalmente para la solucin de problemas. Por ejemplo, una base de datos marcada como sospechosa se puede establecer en el estado EMERGENCY. Esto puede habilitar el acceso de slo lectura del administrador del sistema a la base de datos. Slo los miembros de la funcin fija

de servidor sysadmin pueden establecer una base de datos en el estado EMERGENCY. El estado de esta opcin se puede determinar mediante el examen de las columnas state y state_desc de la vista de catlogo sys.databases o la propiedad Status de la funcin DATABASEPROPERTYEX. Para obtener ms informacin, vea Estados de base de datos. <db_user_access_option> ::= Controla el acceso del usuario a la base de datos. SINGLE_USER Especifica que slo puede tener acceso a la base de datos un usuario cada vez. Si se especifica SINGLE_USER y hay otros usuarios conectados a la base de datos, la instruccin ALTER DATABASE se bloquea hasta que todos los usuarios se desconectan de la base de datos especificada. Para omitir este comportamiento, vea la clusula WITH <termination>. La base de datos permanece en modo SINGLE_USER incluso si cierra la sesin el usuario que estableci la opcin. En este punto, un usuario distinto, pero slo uno, puede conectarse a la base de datos. RESTRICTED_USER RESTRICTED_USER permite conectarse a la base de datos slo a los miembros de la funcin fija de base de datos db_owner y a los de las funciones fijas de servidor dbcreator y sysadmin, pero no limita su nmero. Todas las conexiones a la base de datos se desconectan en el margen de tiempo especificado por la clusula de terminacin de la instruccin ALTER DATABASE. Una vez que la base de datos ha cambiado al estado RESTRICTED_USER, se rechazan los intentos de conexin por parte de usuarios no cualificados. MULTI_USER Todos los usuarios que tengan los permisos correspondientes pueden conectarse a la base de datos. El estado de esta opcin se puede determinar mediante el examen de la columna user_access de la vista de catlogo sys.databases o la propiedad UserAccess de la funcin DATABASEPROPERTYEX. <db_update_option>::= Controla si se permiten las actualizaciones en la base de datos.

READ_ONLY Los usuarios pueden leer los datos de la base de datos pero no modificarlos. READ_WRITE La base de datos est disponible para las operaciones de lectura y escritura. Para cambiar este estado, debe tener acceso exclusivo a la base de datos. Para obtener ms informacin, vea la clusula SINGLE_USER. <external_access_option>::= Controla si recursos externos como los objetos de otra base de datos pueden tener acceso a la base de datos. DB_CHAINING { ON | OFF } ON La base de datos puede ser el origen o el destino de un encadenamiento de propiedad entre bases de datos. OFF La base de datos no puede participar en el encadenamiento de propiedad entre bases de datos. Importante: La instancia de SQL Server reconoce esta configuracin si la opcin del servidor cross db ownership chaining es 0 (OFF). Si cross db ownership chaining es 1 (ON), todas las bases de datos de usuario pueden participar en los encadenamientos de propiedad entre bases de datos con independencia del valor de esta opcin. Esta opcin se configura con sp_configure. Para establecer esta opcin, debe pertenecer a la funcin fija de servidor sysadmin. La opcin DB_CHAINING no se puede establecer en estas bases de datos del sistema: master, model y tempdb. El estado de esta opcin se puede determinar mediante el examen de la columna is_db_chaining_on de la vista de catlogo sys.databases. Para obtener ms informacin, vea Cadenas de propiedad. TRUSTWORTHY { ON | OFF } ON

Los mdulos de base de datos (por ejemplo, las funciones definidas por el usuario o los procedimientos almacenados) que utilizan un contexto de suplantacin pueden tener acceso a recursos externos a la base de datos. OFF Los mdulos de base de datos en un contexto de suplantacin no pueden tener acceso a recursos externos a la base de datos. TRUSTWORTHY se establece en OFF siempre que la base de datos se adjunta. De forma predeterminada, en la base de datos master TRUSTWORTHY se establece en ON. En las bases de datos model y tempdb, TRUSTWORTHY siempre se establece en OFF y el valor no se puede modificar para dichas bases de datos. Para configurar esta opcin, se requiere la pertenencia a la funcin fija de servidor sysadmin. El estado de esta opcin se puede determinar mediante el examen de la columna is_trustworthy_on de la vista de catlogo sys.databases. <cursor_option>::= Controla las opciones del cursor. CURSOR_CLOSE_ON_COMMIT { ON | OFF } ON Todos los cursores abiertos al confirmar o revertir una transaccin se cierran. OFF Los cursores permanecen abiertos cuando se confirma una transaccin; al revertir una transaccin se cierran todos los cursores excepto los que estn definidos como INSENSITIVE o STATIC. La configuracin del nivel de conexin, establecida mediante la instruccin SET, anula la configuracin predeterminada de la base de datos para CURSOR_CLOSE_ON_COMMIT. De forma predeterminada, los clientes ODBC y OLE DB generan una instruccin SET en el nivel de conexin y establecen CURSOR_CLOSE_ON_COMMIT en OFF para la sesin al establecer la conexin con una instancia de SQL Server. Para obtener ms informacin, vea SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL).

El estado de esta opcin se puede determinar mediante el examen de la columna is_cursor_close_on_commit_on de la vista de catlogo sys.databases o la propiedad IsCloseCursorsOnCommitEnabled de la funcin DATABASEPROPERTYEX. CURSOR_DEFAULT { LOCAL | GLOBAL } Controla si el mbito del cursor utiliza LOCAL o GLOBAL. LOCAL Cuando se especifica LOCAL y no se define ningn cursor como GLOBAL al crearlo, el mbito del cursor es local para el proceso por lotes, procedimiento almacenado o desencadenador en el que se cre el cursor. El nombre del cursor slo es vlido dentro de este mbito. Es posible hacer referencia al cursor mediante variables de cursor locales del proceso por lotes, procedimiento almacenado, desencadenador o parmetro OUTPUT del procedimiento almacenado. La asignacin del cursor se cancela implcitamente cuando el proceso por lotes, el procedimiento almacenado o el desencadenador terminan, a menos que haya sido devuelto en un parmetro OUTPUT. Si el cursor se devuelve en un parmetro OUTPUT, se cancela la asignacin del cursor cuando se cancela la asignacin de la ltima variable que hace referencia a l o se sale del mbito. GLOBAL Si se especifica GLOBAL y no se define ningn cursor como LOCAL al crearlo, el mbito del cursor es global para la conexin. Se puede hacer referencia al nombre del cursor en cualquier procedimiento almacenado o proceso por lotes que se ejecute durante la conexin. La asignacin del cursor se cancela implcitamente slo cuando se realiza la desconexin. Para obtener ms informacin, vea DECLARE CURSOR (TransactSQL). El estado de esta opcin se puede determinar mediante el examen de la columna is_local_cursor_default de la vista de catlogo sys.databases o la propiedad IsLocalCursorsDefault de la funcin DATABASEPROPERTYEX. <auto_option>::= Controla las opciones automticas. AUTO_CLOSE { ON | OFF } ON

La base de datos se cierra correctamente y se liberan sus recursos despus de que salga el ltimo usuario. La base de datos se vuelve a abrir automticamente cuando un usuario intenta utilizarla de nuevo. Por ejemplo, al generar una instruccin USE database_name. Si la base de datos se cierra correctamente mientras AUTO_CLOSE est establecido en ON, la base de datos no se vuelve a abrir hasta que un usuario intenta utilizar la base de datos la prxima vez que se reinicia el Database Engine (Motor de base de datos). OFF La base de datos permanece abierta despus de que haya salido el ltimo usuario. La opcin AUTO_CLOSE es til para las bases de datos de escritorio porque permite administrar los archivos de la base de datos como archivos normales. Se pueden mover, copiar para realizar copias de seguridad e, incluso, enviar por correo electrnico a otros usuarios. Nota: En versiones anteriores de SQL Server, AUTO_CLOSE es un proceso sincrnico que puede reducir el rendimiento si tiene acceso a la base de datos una aplicacin que establece e interrumpe repetidamente la conexin al Database Engine (Motor de base de datos). En SQL Server 2005, el proceso AUTO_CLOSE es asincrnico; la apertura y cierre repetidos de la base de datos no reduce el rendimiento. El estado de esta opcin se puede determinar mediante el examen de la columna is_auto_close_on de la vista de catlogo sys.databases o la propiedad IsAutoClose de la funcin DATABASEPROPERTYEX. Nota: Si AUTO_CLOSE es ON, algunas columnas de la vista de catlogo sys.databases y de la funcin DATABASEPROPERTYEX devuelven NULL porque la base de datos no est disponible para recuperar los datos. Para resolver este problema, ejecute la instruccin USE para abrir la base de datos. Nota: La creacin de reflejo de la base de datos requiere AUTO_CLOSE OFF. AUTO_CREATE_STATISTICS { ON | OFF } ON Las estadsticas que falten en una consulta para su optimizacin se generan automticamente durante la optimizacin de las consultas.

Agregar estadsticas mejora el rendimiento de las consultas, ya que el optimizador de consultas de SQL Server puede determinar mejor la forma de evaluar una consulta. Si no se utilizan estadsticas, el Database Engine (Motor de base de datos) las elimina automticamente. Cuando el valor es OFF, las estadsticas no se crean automticamente; en su lugar, se pueden crear manualmente. Para obtener ms informacin, vea Estadsticas de ndice. OFF Las estadsticas se deben crear manualmente. El estado de esta opcin se puede determinar mediante el examen de la columna is_auto_update_stats_on de la vista de catlogo sys.databases o la propiedad IsAutoUpdateStatistics de la funcin DATABASEPROPERTYEX. Nota: El optimizador de consultas trata todas las tablas del sistema internas como si el valor de AUTO_CREATE_STATISTICS fuera ON con independencia del valor actual. Estas tablas incluyen tablas base del sistema, ndices XML, ndices de texto, tablas de cola de Service Broker y tablas de notificaciones de consulta. AUTO_SHRINK { ON | OFF } ON Los archivos de la base de datos se pueden reducir peridicamente. Pueden reducirse automticamente los archivos de datos y los archivos de registro. AUTO_SHRINK reduce el tamao del registro de transacciones slo si se establece en SIMPLE el modelo de recuperacin de la base de datos o si se realiza una copia de seguridad del registro. Cuando el valor es OFF, los archivos de la base de datos no se reducen automticamente durante las comprobaciones peridicas de espacio no utilizado. La opcin AUTO_SHRINK reduce los archivos cuando no se utiliza ms de un 25% del espacio del archivo. El tamao del archivo se reduce hasta un tamao en el que el 25% del archivo corresponde al espacio sin utilizar o hasta el tamao del archivo cuando se cre (el tamao mayor de los dos). No puede reducir una base de datos de slo lectura. OFF Los archivos de la base de datos no se reducen automticamente durante las comprobaciones peridicas de espacio no utilizado.

El estado de esta opcin se puede determinar mediante el examen de la columna is_auto_shrink_on de la vista de catlogo sys.databases o la propiedad IsAutoShrink de la funcin DATABASEPROPERTYEX. . AUTO_UPDATE_STATISTICS { ON | OFF } ON Las estadsticas obsoletas requeridas por una consulta para su optimizacin se actualizan automticamente durante la optimizacin de las consultas. OFF Las estadsticas se deben actualizar manualmente. Nota: La instruccin UPDATE STATISTICS vuelve a habilitar la actualizacin estadstica automtica en la tabla o la vista de destino a menos que se especifique la clusula NORECOMPUTE. Nota: El optimizador de consultas trata todas las tablas del sistema internas como si el valor de AUTO_UPDATE_STATISTICS fuera ON con independencia del valor actual. Estas tablas incluyen tablas base del sistema, ndices XML, ndices de texto, tablas de cola de Service Broker y tablas de notificaciones de consulta. Para obtener ms informacin, vea Estadsticas de ndice. AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF } ON Las consultas que inician una actualizacin automtica de las estadsticas obsoletas no esperan a que las estadsticas se actualicen antes de la compilacin. Las consultas posteriores utilizan las estadsticas actualizadas si estn disponibles. OFF Las consultas que inician una actualizacin automtica de las estadsticas obsoletas esperan a que las estadsticas actualizadas se puedan utilizar en el plan de optimizacin de consultas. La configuracin de esta opcin en ON no surte efecto a menos que AUTO_UPDATE_STATISTICS se establezca en ON. Para obtener ms informacin, vea Estadsticas de ndice.

<sql_option>::= Controla las opciones de compatibilidad con ANSI en el nivel de base de datos. ANSI_NULL_DEFAULT { ON | OFF } Determina el valor predeterminado, NULL o NOT NULL, de una columna, el tipo de datos de alias o el tipo definido por el usuario CLR para los que la capacidad de aceptar valores NULL no se ha definido explcitamente en las instrucciones CREATE TABLE o ALTER TABLE. Las columnas para las que se hayan definido restricciones siguen las reglas de las restricciones independientemente de esta configuracin. ON El valor predeterminado es NULL. OFF El valor predeterminado es NOT NULL. La configuracin del nivel de conexin, establecida mediante la instruccin SET, anula la configuracin predeterminada del nivel de base de datos para ANSI_NULL_DEFAULT. De forma predeterminada, los clientes ODBC y OLE DB generan una instruccin SET en el nivel de conexin y establecen ANSI_NULL_DEFAULT en ON para la sesin al establecer la conexin con una instancia de SQL Server. Para obtener ms informacin, vea SET ANSI_NULL_DFLT_ON (Transact-SQL). Para la compatibilidad con ANSI, si se establece la opcin de base de datos ANSI_NULL_DEFAULT en ON, el valor predeterminado cambia a NULL. El estado de esta opcin se puede determinar mediante el examen de la columna is_ansi_null_default_on de la vista de catlogo sys.databases o la propiedad IsAnsiNullDefault de la funcin DATABASEPROPERTYEX. ANSI_NULLS { ON | OFF } ON Todas las comparaciones con un valor NULL se evalan como UNKNOWN. OFF Las comparaciones de valores no UNICODE con un valor NULL se evalan como TRUE si ambos valores son NULL.

La configuracin del nivel de conexin, establecida mediante la instruccin SET, anula la configuracin predeterminada de la base de datos para ANSI_NULLS. De forma predeterminada, los clientes ODBC y OLE DB generan una instruccin SET en el nivel de conexin y establecen ANSI_NULLS en ON para la sesin al establecer la conexin con una instancia de SQL Server. Para obtener ms informacin, vea SET ANSI_NULLS (Transact-SQL). El valor de SET ANSI_NULLS tambin debe ser ON al crear o realizar cambios en los ndices en columnas calculadas o vistas indizadas. El estado de esta opcin se puede determinar mediante el examen de la columna is_ansi_nulls_on de la vista de catlogo sys.databases o la propiedad IsAnsiNullsEnabled de la funcin DATABASEPROPERTYEX. ANSI_PADDING { ON | OFF } ON Las cadenas se rellenan hasta la misma longitud antes de la conversin o insercin en un tipo de datos varchar o nvarchar. Los espacios en blanco finales de los valores de caracteres insertados en las columnas varchar o nvarchar y los ceros finales de los valores binarios insertados en las columnas varbinary no se recortan. Los valores no se rellenan hasta completar la longitud de la columna. OFF Los espacios en blanco finales para varchar o nvarchar y los ceros para varbinary se recortan. Si se especifica OFF, esta opcin slo afecta a la definicin de las columnas nuevas. Las columnas char(n) y binary(n) que permiten valores NULL se rellenan hasta completar la longitud de la columna si ANSI_PADDING se establece en ON, pero los espacios en blanco y los ceros finales se recortan si ANSI_PADDING es OFF. Las columnas char(n) y binary(n) que no permiten valores NULL siempre se rellenan hasta completar la longitud de la columna. La configuracin del nivel de conexin, establecida mediante la instruccin SET, anula la configuracin predeterminada del nivel de base de datos para ANSI_PADDING. De forma predeterminada, los clientes ODBC y OLE DB generan una instruccin SET en el nivel de conexin y establecen ANSI_PADDING en ON para la sesin al establecer la conexin con una instancia de SQL Server. Para obtener ms informacin, vea SET ANSI_PADDING (Transact-SQL).

Importante: Se recomienda que ANSI_PADDING siempre sea ON. ANSI_PADDING tambin debe ser ON al crear o manipular ndices en columnas calculadas o vistas indizadas. El estado de esta opcin se puede determinar mediante el examen de la columna is_ansi_padding_on de la vista de catlogo sys.databases o la propiedad IsAnsiPaddingEnabled de la funcin DATABASEPROPERTYEX. ANSI_WARNINGS { ON | OFF } ON Se emiten mensajes de error o advertencias cuando tienen lugar condiciones como la divisin por cero o cuando aparecen valores NULL en funciones de agregacin. OFF No se genera ninguna advertencia ni se devuelven valores NULL si se producen condiciones como la divisin por cero. El valor de SET ANSI_WARNINGS debe ser ON al crear o realizar cambios en los ndices en columnas calculadas o vistas indizadas. La configuracin del nivel de conexin, establecida mediante la instruccin SET, anula la configuracin predeterminada de la base de datos para ANSI_WARNINGS. De forma predeterminada, los clientes ODBC y OLE DB generan una instruccin SET en el nivel de conexin y establecen ANSI_WARNINGS en ON para la sesin al establecer la conexin con una instancia de SQL Server. Para obtener ms informacin, vea SET ANSI_WARNINGS (Transact-SQL). El estado de esta opcin se puede determinar mediante el examen de la columna is_ansi_warnings_on de la vista de catlogo sys.databases o la propiedad IsAnsiWarningsEnabled de la funcin DATABASEPROPERTYEX. ARITHABORT { ON | OFF } ON Cancela una consulta cuando se produce un error de desbordamiento o divisin por cero durante su ejecucin. OFF Se muestra un mensaje de advertencia si se produce uno de estos errores, pero la consulta, lote o transaccin contina procesndose como si no se hubiera producido ningn error.

El valor de SET ARITHABORT debe ser ON al crear o realizar cambios en los ndices en columnas calculadas o vistas indizadas. El estado de esta opcin se puede determinar mediante el examen de la columna is_arithabort_on de la vista de catlogo sys.databases o la propiedad IsArithmeticAbortEnabled de la funcin DATABASEPROPERTYEX. CONCAT_NULL_YIELDS_NULL { ON | OFF } ON El resultado de una operacin de concatenacin es NULL si alguno de los operandos es NULL. Por ejemplo, la concatenacin de la cadena de caracteres "Esto es" y NULL da como resultado el valor NULL, y no el valor "Esto es". OFF El valor NULL se trata como una cadena de caracteres vaca. El valor de CONCAT_NULL_YIELDS_NULL tambin debe ser ON al crear o realizar cambios en los ndices en columnas calculadas o vistas indizadas. La configuracin del nivel de conexin, establecida mediante la instruccin SET, anula la configuracin predeterminada de la base de datos para CONCAT_NULL_YIELDS_NULL. De forma predeterminada, los clientes ODBC y OLE DB generan una instruccin SET en el nivel de conexin y establecen CONCAT_NULL_YIELDS_NULL en ON para la sesin al establecer la conexin con una instancia de SQL Server. Para obtener ms informacin, vea SET CONCAT_NULL_YIELDS_NULL (Transact-SQL). El estado de esta opcin se puede determinar mediante el examen de la columna is_concat_null_yields_null_on de la vista de catlogo sys.databases o la propiedad IsNullConcat de la funcin DATABASEPROPERTYEX. QUOTED_IDENTIFIER { ON | OFF } ON Las comillas dobles se pueden usar para identificadores delimitados. Todas las cadenas delimitadas por comillas dobles se interpretan como identificadores de objetos. Los identificadores entre comillas no tienen que adaptarse a las reglas de Transact-SQL para identificadores. Pueden ser palabras clave e incluir caracteres que no suelen permitirse en los identificadores de Transact-SQL. Si una comilla simple (') forma parte de la cadena literal, puede representarse mediante comillas dobles ("). OFF

Los identificadores no se pueden incluir entre comillas y deben seguir todas las reglas de Transact-SQL para los identificadores. Los literales se pueden delimitar con comillas simples o dobles. SQL Server tambin permite delimitar los identificadores con corchetes ([ ]). Los identificadores entre corchetes pueden usarse siempre, independientemente de la configuracin de QUOTED_IDENTIFIER. Para obtener ms informacin, vea Identificadores delimitados (motor de base de datos). Al crear una tabla, la opcin QUOTED IDENTIFIER siempre se almacena como ON en los metadatos de la tabla incluso si la opcin est establecida en OFF al crear la tabla. La configuracin en el nivel de conexin, establecida mediante la instruccin SET, anula la configuracin predeterminada de la base de datos para QUOTED_IDENTIFIER. De forma predeterminada, los clientes ODBC y OLE DB generan una instruccin SET en el nivel de conexin y establecen QUOTED_IDENTIFIER en ON al establecer la conexin con una instancia de SQL Server. Para obtener ms informacin, vea SET QUOTED_IDENTIFIER (Transact-SQL). El estado de esta opcin se puede determinar mediante el examen de la columna is_quoted_identifier_on de la vista de catlogo sys.databases o la propiedad IsQuotedIdentifiersEnabled de la funcin DATABASEPROPERTYEX. NUMERIC_ROUNDABORT { ON | OFF } ON Se genera un error cuando se produce una prdida de precisin en una expresin. OFF Las prdidas de precisin no generan mensajes de error y el resultado se redondea con la precisin de la columna o variable que lo almacena. El valor de NUMERIC_ROUNDABORT tambin debe ser OFF al crear o realizar cambios en ndices de columnas calculadas o vistas indizadas. El estado de esta opcin se puede determinar mediante el examen de la columna is_numeric_roundabort_on de la vista de catlogo sys.databases o la propiedad IsNumericRoundAbortEnabled de la funcin DATABASEPROPERTYEX. RECURSIVE_TRIGGERS { ON | OFF } ON Se permite la activacin recursiva de desencadenadores AFTER.

OFF No se permite nicamente la activacin recursiva directa de desencadenadores AFTER. Adems, para deshabilitar la recursividad indirecta de los desencadenadores AFTER, la opcin de servidor de desencadenadores anidados se debe establecer en 0 con sp_configure. Nota: Cuando RECURSIVE_TRIGGERS es OFF slo se impide la recursividad directa. Para deshabilitar la recursividad indirecta, tambin debe establecer la opcin de servidor nested triggers en 0. El estado de esta opcin se puede determinar mediante el examen de la columna is_recursive_triggers_on de la vista de catlogo sys.databases o la propiedad IsRecursiveTriggersEnabled de la funcin DATABASEPROPERTYEX. <recovery_option> ::= Controla las opciones de recuperacin de base de datos y la comprobacin de errores de E/S de disco. FULL Proporciona una restauracin completa despus de un error del medio con copias de seguridad del registro de transacciones. Si un archivo de datos est daado, la recuperacin del medio puede restaurar todas las transacciones confirmadas. Para obtener ms informacin, vea Informacin general de la recuperacin completa. BULK_LOGGED Proporciona una restauracin tras un error del medio mediante la combinacin del rendimiento ptimo y el uso del espacio de registro mnimo para determinadas operaciones a gran escala o masivas. Para obtener informacin acerca de las operaciones registradas masivamente, vea Operaciones registradas mnimamente. En el modelo de recuperacin BULK_LOGGED, el registro de estas operaciones es mnimo. Para obtener ms informacin, vea Informacin general de la recuperacin por medio de registros de operaciones masivas. SIMPLE Se proporciona una estrategia de copia de seguridad sencilla que utiliza un espacio de registro mnimo. Es posible volver a utilizar el espacio de registro automticamente cuando ya no se necesite para recuperar errores del servidor. Para obtener ms informacin, vea Informacin general de recuperacin simple.

Importante: El modelo de recuperacin simple es ms fcil de administrar que los otros dos modelos, pero a costa de un mayor riesgo de prdida de datos si se daa un archivo de datos. Se pierden todos los cambios desde la copia de seguridad de base de datos ms reciente o la copia de seguridad diferencial de la base de datos y se deben volver a incluir manualmente. El modelo de recuperacin predeterminado se determina mediante el modelo de recuperacin de la base de datos model. Para obtener ms informacin acerca de cmo seleccionar el modelo de recuperacin adecuado, vea Seleccionar una estrategia de recuperacin compatible con las aplicaciones. El estado de esta opcin se puede determinar mediante el examen de las columnas recovery_model y recovery_model_desc de la vista de catlogo sys.databases o la propiedad Recovery de la funcin DATABASEPROPERTYEX. TORN_PAGE_DETECTION { ON | OFF } ON Las pginas incompletas se pueden detectar mediante el Database Engine (Motor de base de datos). OFF Las pginas incompletas no se pueden detectar mediante el Database Engine (Motor de base de datos). Importante: La estructura de sintaxis TORN_PAGE_DETECTION ON | OFF se quitar en una versin futura de Microsoft SQL Server. Evite utilizar esta estructura de sintaxis en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que la utilizan actualmente. Utilice la opcin PAGE_VERIFY en su lugar. PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE } Detecta pginas de bases de datos daadas por errores de ruta de E/S de disco. Los errores de ruta de E/S de disco pueden producir daos en la base de datos debidos por lo general a problemas con el suministro elctrico o a fallos del hardware del disco producidos en el momento en que se est escribiendo en el disco. CHECKSUM Calcula una suma de comprobacin del contenido de toda la pgina y almacena el valor en el encabezado de pgina si se escribe una pgina en el disco. Si la pgina

se lee desde el disco, la suma de comprobacin se vuelve a calcular y se compara con el valor de suma de comprobacin almacenado en el encabezado de pgina. Si el valor no coincide, se genera un mensaje de error 824 (indica un error de la suma de comprobacin) tanto para el registro de errores de SQL Server como para el registro de eventos de Windows. Un error de la suma de comprobacin indica un problema de ruta de E/S. Para determinar la causa, se deben investigar el hardware, los controladores de firmware, el BIOS, los controladores de filtro (por ejemplo, software antivirus) y otros componentes de ruta de E/S. TORN_PAGE_DETECTION Guarda un bit especfico por cada sector de 512 bytes en la pgina de base de datos de 8 kilobytes (KB) y lo almacena en el encabezado de pgina de la base de datos al escribir la pgina en el disco. Si la pgina se lee desde el disco, los bits incompletos almacenados en el encabezado de pgina se comparan con la informacin del sector de la pgina real. Los valores no coincidentes indican que slo se ha escrito en el disco una parte de la pgina. En esta situacin, se genera el mensaje de error 824 (indica un error de pgina rasgada) tanto para el registro de errores de SQL Server como para el registro de sucesos de Windows. Las pginas rasgadas se suelen detectar mediante la recuperacin de la base de datos si se trata realmente de la escritura incompleta de una pgina. No obstante, otros errores de ruta de E/S pueden generar una pgina rasgada en cualquier momento. NONE Las escrituras de pgina de base datos no generan un valor CHECKSUM o TORN_PAGE_DETECTION. SQL Server no comprueba ninguna suma de comprobacin o pgina rasgada durante una lectura incluso si hay un valor CHECKSUM o TORN_PAGE_DETECTION en el encabezado de pgina. Tenga en cuenta los siguientes puntos importantes al utilizar la opcin PAGE_VERIFY:

En SQL Server 2005, el valor predeterminado es CHECKSUM. Se recomienda utilizar CHECKSUM. En SQL Server 2000, TORN_PAGE_DETECTION es el valor predeterminado. TORN_PAGE_DETECTION puede utilizar menos recursos, pero proporciona un subconjunto mnimo de la proteccin de CHECKSUM. PAGE_VERIFY se puede configurar sin desconectar la base de datos, bloquearla o impedir la simultaneidad en ella. CHECKSUM y TORN_PAGE_DETECTION se excluyen mutuamente. No se pueden habilitar ambas opciones al mismo tiempo.

Si se detecta un error de pgina rasgada o suma de comprobacin, puede realizar una recuperacin mediante la restauracin de los datos o una nueva generacin del ndice si el error se limita slo a las pginas de ndices. Si detecta un error de suma de comprobacin, para determinar el tipo de pgina o pginas de base de datos afectadas, ejecute DBCC CHECKDB. Para obtener ms informacin acerca de las opciones de restauracin, vea Copias de seguridad de bases de datos. Aunque la restauracin de los datos resuelve el problema de los datos daados, es necesario diagnosticar y corregir la causa (por ejemplo, un error del hardware de disco) lo antes posible para evitar errores continuos. SQL Server reintenta cualquier lectura que genere un error con una suma de comprobacin, una pgina rasgada u otros errores de E/S en cuatro ocasiones. Si la lectura se desarrolla correctamente en uno de los reintentos, se escribe un mensaje en el registro de errores y el comando que ha desencadenado la lectura contina. Si los reintentos fallan, el comando genera el mensaje de error 824. Para obtener ms informacin acerca de la suma de comprobacin, la pgina rasgada, los reintentos de lectura, los mensajes de error 823 y 824, y otras caractersticas de auditora de E/S de SQL Server, vea este sitio Web de Microsoft. La configuracin actual de esta opcin se puede determinar mediante el examen de la columna page_verify_option de la vista de catlogo sys.databases o la propiedad IsTornPageDetectionEnabled de la funcin DATABASEPROPERTYEX. <database_mirroring_option>::= Importante: Las directivas de compatibilidad de Microsoft no se aplican a la caracterstica de creacin de reflejo de la base de datos en SQL Server 2005. La creacin de reflejo de la base de datos est actualmente deshabilitada de forma predeterminada, pero puede habilitarla solamente con fines de evaluacin mediante la marca de traza 1400 como parmetro de inicio. (Si desea obtener ms informacin acerca de las marcas de traza, vea Marcas de traza (Transact-SQL).) La creacin de reflejo de la base de datos no debe utilizarse en entornos de produccin. Los servicios de soporte tcnico de Microsoft no ofrecern soporte a bases de datos o aplicaciones que utilicen la creacin de reflejo de la base de datos. La documentacin sobre la creacin de reflejo de la base de datos se incluye en SQL Server 2005 solamente con fines de evaluacin y la Directiva de documentacin para soporte y actualizacin de SQL Server 2005 no se aplica a la documentacin sobre la creacin de reflejo de la base de datos. Controla la creacin de reflejo de la base de datos. Los valores especificados con las opciones de creacin de reflejo de la base de datos se aplican a ambas copias de la base de datos y a la sesin de creacin de reflejo de la base de datos en su conjunto. Slo se

permite una opcin <database_mirroring_option> por cada instruccin ALTER DATABASE: { SET PARTNER <partner_option> | SET WITNESS <witness_option>}. Importante: Es recomendable que configure la creacin de reflejo de la base de datos durante las horas de menor actividad, ya que la configuracin puede afectar al rendimiento. Para obtener informacin acerca de la creacin de reflejo de la base de datos, vea Creacin de reflejo de la base de datos. PARTNER <partner_option> Controla las propiedades de la base de datos que definen los asociados de conmutacin por error de una sesin de creacin de reflejo de la base de datos y su comportamiento. Algunas opciones SET PARTNER se pueden establecer en cualquier asociado; otras opciones se limitan al servidor principal o al servidor reflejado. Para obtener ms informacin, vea cada opcin PARTNER especificada a continuacin. Una clusula SET PARTNER afecta a ambas copias de la base de datos con independencia del asociado en que se especifica. Para ejecutar una instruccin SET PARTNER, el valor de STATE de los extremos de ambos asociados debe ser STARTED. Adems, debe tener en cuenta que el valor de ROLE del extremo de la creacin de reflejo de la base de datos de cada instancia del servidor asociado se debe establecer en PARTNER o ALL. Para obtener informacin acerca de cmo especificar un extremo, vea Cmo crear un extremo de reflejo para la autenticacin de Windows (Transact-SQL). Para conocer la funcin y el estado del extremo de la creacin de reflejo de la base de datos de una instancia del servidor, debe utilizar la siguiente instruccin TransactSQL en dicha instancia: Copiar cdigo
SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints

<partner_option> ::= Nota: Slo se permite una opcin <partner_option> por cada clusula SET PARTNER. 'partner_server' Especifica la direccin de red del servidor de una instancia de SQL Server para actuar como un asociado de conmutacin por error en la nueva sesin de creacin de reflejo de la base de datos. Cada sesin requiere dos asociados: un asociado empieza como servidor principal y el otro como servidor reflejado. Se recomienda que estos asociados residan en equipos distintos.

Esta opcin se especifica una vez por sesin en cada asociado. El inicio de la creacin de reflejo de la base de datos requiere dos instrucciones ALTER DATABASE database SET PARTNER = 'partner_server'. El orden es relevante. En primer lugar, conctese al servidor reflejado y especifique la instancia del servidor principal como partner_server (SET PARTNER = 'principal_server'). A continuacin, establezca la conexin con el servidor principal y especifique la instancia del servidor reflejado como partner_server (SET PARTNER = 'mirror_server'); de este modo se inicia una sesin de creacin de reflejo de la base de datos entre estos dos asociados. Para obtener ms informacin, vea Configurar la creacin de reflejo de la base de datos (Transact-SQL). El valor de partner_server es una direccin de red de servidor. Tiene la siguiente sintaxis: TCP://fully_qualified_domain_name:port

fully_qualified_domain_name es una cadena de direccin definida localmente. Un nombre de dominio completo suele ser un nombre compuesto que adopta varias formas en sitios distintos; con frecuencia, aunque no siempre, el nombre de dominio completo incluye un nombre de servidor y una serie de segmentos de dominio separados por puntos: server_name.domain_segment [.n ] donde
o

server_name Es el nombre de red del equipo del servidor.

domain_segment [.n] Es la informacin de dominio restante del servidor; por ejemplo:


localinfo.corp.mycompany.com

El contenido y la cantidad de segmentos de dominio se determina en la empresa u organizacin. Si no conoce el nombre de dominio completo del servidor, consulte con el administrador del sistema.

Importante: Si utiliza un nombre de dominio slo parcialmente completo en lugar del nombre de dominio completo requerido, aparecer el error 1460. Si aparece este error, especifique un nombre de dominio completo en la direccin de red de servidor y repita la operaci

port es un nmero de puerto que est asociado con el extremo de la creacin de reflejo de la instancia del servidor asociado. Cada nmero de puerto de un sistema se puede asociar a un extremo nicamente y cada extremo es especfico de una sola instancia de servidor. El puerto que especifique en la direccin de red de servidor al configurar una sesin de creacin de reflejo de la base de datos siempre dirigir las conexiones a la instancia de servidor cuyo extremo est asociado con dicho puerto. Para identificar el puerto asociado actualmente con el extremo de reflejo de la base de datos de una instancia de servidor, utilice la siguiente instruccin Transact-SQL: Copiar cdigo
SELECT type_desc, port FROM sys.tcp_endpoints

Busque la fila cuyo valor type_desc sea DATABASE_MIRRORING y utilice el nmero de puerto correspondiente.

En el siguiente ejemplo se muestra la clusula SET PARTNER = 'partner_server': Copiar cdigo


SET PARTNER = 'TCP://MYSERVER.mydomain.mycompany.com:5022'

Importante: Si se configura una sesin con la instruccin ALTER DATABASE en lugar de con SQL Server Management Studio, la sesin se configura con la seguridad de transacciones completa de forma predeterminada (SAFETY se establece en FULL) y se ejecuta en el modo de alta proteccin. Para ejecutarla en el modo de alta disponibilidad, configure un testigo; para ejecutarla en el modo de alto rendimiento, desactive la seguridad de transacciones (SAFETY OFF). FAILOVER Conmuta manualmente el servidor principal al servidor reflejado. Slo puede especificar FAILOVER en el servidor principal. Esta opcin es vlida slo si la configuracin de SAFETY es FULL (valor predeterminado). Para obtener ms informacin, vea Conmutacin por error manual. FORCE_SERVICE_ALLOW_DATA_LOSS Fuerza el servicio de base de datos en la base de datos reflejada despus de producirse un error en el servidor principal con la base de datos en un estado no sincronizado.

Se recomienda encarecidamente que el servicio slo se fuerce si el servidor principal no se est ejecutando. En caso contrario, algunos clientes pueden seguir teniendo acceso a la base de datos principal original en lugar de la base de datos principal nueva. FORCE_SERVICE_ALLOW_DATA_LOSS est disponible slo en el servidor reflejado y si se cumplen todas las condiciones siguientes:

El servidor principal est inactivo. WITNESS se establece en OFF o el testigo est conectado al servidor reflejado.

Fuerce el servicio slo si es aceptable el riesgo de perder datos para restaurar el servicio en la base de datos inmediatamente. Para obtener informacin acerca de cmo forzar el servicio, vea Operacin asincrnica de creacin de reflejo de la base de datos (Modo de alto rendimiento). Al forzar el servicio se suspende la sesin, lo que conserva temporalmente todos los datos de la base de datos principal original. Si reanuda la sesin, se pierden los registros no enviados y las actualizaciones correspondientes. Para conservar las actualizaciones necesarias despus de forzar el servicio, puede detener la sesin, guardar los datos manualmente y, a continuacin, restablecer la creacin de reflejo de la base de datos. El segundo mtodo puede llevar mucho tiempo. Para obtener ms informacin, vea Servicio forzado (con posible prdida de datos). OFF Detiene la sesin de creacin de reflejo de la base de datos. Puede especificar OFF en cualquier asociado. RESUME Reanuda la sesin de creacin de reflejo de la base de datos suspendida. Slo puede especificar RESUME en el servidor principal. SAFETY { FULL | OFF } Establece el nivel de seguridad de las transacciones. Slo puede especificar SAFETY en el servidor principal. El valor predeterminado es FULL. Con el nivel de seguridad completo, el modo operativo de la sesin de creacin de reflejo de la base de datos es sincrnico. El modo operativo sincrnico concreto de la sesin depende del testigo segn se indica a continuacin:

Si la seguridad se establece en FULL y se establece el testigo para la sesin, dicha sesin se ejecuta en el modo de alta disponibilidad. La sesin admite la conmutacin por error automtica, si el testigo est presente en la sesin (es decir, si la instancia del servidor reflejado y el testigo tienen qurum). Para obtener ms informacin, vea Qurum en sesiones de creacin de reflejo de la base de datos. Si se establece un testigo para la sesin, pero est desconectado actualmente, la prdida del servidor reflejado causa el bloqueo del servidor principal.

Si la seguridad se establece en FULL y el testigo en OFF, dicha sesin se ejecuta en el modo de alta proteccin. Si la instancia del servidor reflejado se bloquea, la instancia del servidor principal no se ve afectada. Si la instancia del servidor principal se bloquea, se puede forzar el servicio (con una posible prdida de datos) en la instancia del servidor reflejado.

Si SAFETY se establece en OFF, la sesin se ejecuta en el modo de alto rendimiento asincrnico, en el cual no se admite la conmutacin por error automtica o manual. Sin embargo, los problemas del servidor reflejado no afectan al servidor principal y, si la instancia de ste se bloquea, puede forzar el servicio (con una posible prdida de datos) a la instancia del servidor reflejado, siempre que WITNESS est establecido en OFF o el testigo est conectado actualmente al asociado restante. Importante: El modo de alto rendimiento no se ha diseado para que utilice un testigo. No obstante, si se establece un testigo para una sesin en el modo de alto rendimiento, se requiere el qurum para que la base de datos est disponible. Si el testigo est desconectado y uno de los asociados se bloquea, la base de datos no estar disponible. Por lo tanto, siempre que establezca SAFETY en OFF, es muy recomendable que WITNESS tambin se establezca en OFF. Para obtener ms informacin, vea Configuracin de Transact-SQL y modos de funcionamiento de la creacin de reflejo de la base de datos. SUSPEND Suspende la sesin de creacin de reflejo de la base de datos. Puede especificar SUSPEND en cualquier asociado. REDO_QUEUE ( integer { KB | MB | GB } | UNLIMITED) Controla el tamao de la cola rehecha en el servidor reflejado. La cola rehecha incluye los registros reforzados en el disco en el servidor reflejado, pero no se

ponen al da en la base de datos reflejada. De forma predeterminada, el tamao de la cola rehecha es ilimitado (REDO_QUEUE se establece en UNLIMITED). Slo puede especificar REDO_QUEUE en el servidor principal. Para un modo de funcionamiento sincrnico, puede controlar el tiempo de conmutacin por error si limita el tamao de la cola rehecha. Para obtener ms informacin, vea Tiempo de la conmutacin por error de la creacin de reflejo de la base de datos. Si utiliza la opcin REDO_QUEUE, puede limitar el tamao de la cola rehecha a una cantidad de registro especfica. La cantidad mxima de registro permitida en la cola rehecha se especifica mediante integer y una unidad de medida: KB (kilobytes), MB (megabytes) o GB (gigabytes); por ejemplo, 1000 MB. Para ver la configuracin actual de la cola rehecha, vea las columnas mirroring_redo_queue y mirroring_redo_queue_type de la vista de catlogo sys.database_mirroring. Tenga en cuenta que si especifica el tamao de la cola en kilobytes o gigabytes, el Database Engine (Motor de base de datos) convierte el valor en megabytes. Nota: Para las sesiones que se ejecutan en el modo de alta proteccin asincrnico, la configuracin de REDO_QUEUE no afecta a la sesin. TIMEOUT integer Especifica el perodo de espera en segundos. El perodo de espera es el tiempo mximo durante el que una instancia de servidor espera hasta recibir un mensaje PING de otra instancia en la sesin de creacin de reflejo de la base de datos antes de considerar que la otra instancia est desconectada. Slo puede especificar la opcin TIMEOUT en el servidor principal. Si no especifica esta opcin, el perodo de tiempo equivale a 10 segundos de forma predeterminada. Si especifica 5 o superior, el tiempo de espera se establece en el nmero de segundos especificado. Si especifica un tiempo de espera de 0 a 4 segundos, dicho tiempo de espera se establece automticamente en 5 segundos. Importante: Es recomendable que mantenga el perodo de espera en 10 segundos o ms. Si establece el valor en menos de 10 segundos, existe la posibilidad de que un sistema sobrecargado no reciba los PING y declare un error falso. Para obtener ms informacin, vea Posibles errores durante la creacin de reflejo de la base de datos. WITNESS <witness_option>

Controla las propiedades de base de datos que definen un testigo de creacin de reflejo de la base de datos. La clusula SET WITNESS afecta a ambas copias de la base de datos, pero slo puede especificar SET WITNESS en el servidor principal. Si se establece un testigo para una sesin, se requiere qurum para servir a la base de datos, independientemente de la configuracin de SAFETY; para obtener ms informacin, vea Qurum en sesiones de creacin de reflejo de la base de datos. Se recomienda que el testigo y los asociados de conmutacin por error residan en equipos distintos. Para obtener informacin sobre el testigo, vea Funcin del testigo. Para obtener informacin sobre la conmutacin por error automtica, vea Conmutacin por error automtica. Para ejecutar una instruccin SET WITNESS, el valor de STATE de los extremos de las instancias del servidor principal y el servidor testigo se debe establecer en STARTED. Adems, debe tener en cuenta que el valor de ROLE del extremo de la creacin de reflejo de la base de datos de una instancia del servidor testigo se debe establecer en WITNESS o ALL. Para obtener informacin acerca de cmo especificar un extremo, vea Extremo de creacin de reflejo de base de datos. Para conocer la funcin y el estado del extremo de la creacin de reflejo de la base de datos de una instancia del servidor, debe utilizar la siguiente instruccin Transact-SQL en dicha instancia: Copiar cdigo
SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints

Nota: Las propiedades de base de datos no se pueden establecer en el testigo. <witness_option> ::= Nota: Slo se permite una opcin <witness_option> por cada clusula SET WITNESS. 'witness_server' Especifica una instancia del Database Engine (Motor de base de datos) para que acte como el servidor testigo para una sesin de creacin de reflejo de la base de datos. Slo puede especificar instrucciones SET WITNESS en el servidor principal. En una instruccin SET WITNESS = 'witness_server', la sintaxis de witness_server equivale a la sintaxis de partner_server. OFF

Quita el testigo de la sesin de creacin de reflejo de la base de datos. Si se establece el testigo en OFF, se deshabilita la conmutacin por error automtica. Si la base de datos se establece en FULL SAFETY y el testigo se establece en OFF, un error del servidor reflejado hace que el servidor principal anule la disponibilidad de la base de datos. <supplemental_logging_option>::= Controla el registro complementario. SUPPLEMENTAL_LOGGING { ON | OFF } ON Se agrega ms informacin al registro para los productos de otros fabricantes. Si se establece esta opcin en ON, aumenta el uso del espacio de registro y esto puede afectar al rendimiento. OFF No se agrega ms informacin al registro. La configuracin actual de esta opcin se puede determinar mediante el examen de la columna is_supplemental_logging_enabled de la vista de catlogo sys.databases. <service_broker_option>::= Controla las opciones de Service Broker. ENABLE_BROKER Especifica que Service Broker est habilitado para la base de datos especificada. El indicador is_broker_enabled se establece en true en la vista de catlogo sys.databases y se inicia la entrega de mensajes. DISABLE_BROKER Especifica que Service Broker est deshabilitado para la base de datos especificada. El indicador is_broker_enabled se establece en false en la vista de catlogo sys.databases y se interrumpe la entrega de mensajes. NEW_BROKER Especifica que la base de datos debe recibir un identificador de broker nuevo. Dado que la base de datos se considera un Service Broker nuevo, todas las

conversaciones existentes en la base de datos se quitan inmediatamente sin generar mensajes de finalizacin de dilogo. ERROR_BROKER_CONVERSATIONS Especifica que las conversaciones de la base de datos deben recibir un mensaje de error cuando se adjunta la base de datos. Esto permite que las aplicaciones realicen una limpieza regular de las conversaciones existentes. <date_correlation_optimization_option> ::= Controla la opcin date_correlation_optimization. DATE_CORRELATION_OPTIMIZATION { ON | OFF } ON SQL Server mantiene estadsticas de correlacin entre dos tablas de la base de datos que estn vinculadas mediante una restriccin FOREIGN KEY y tengan columnas datetime. Para obtener ms informacin, vea Optimizar consultas con acceso a columnas datetime correlativas. OFF No se mantiene ninguna estadstica de correlacin. Si configura esta opcin, slo se permite una conexin a la base de datos. La configuracin actual de esta opcin se puede determinar mediante el examen de la columna is_date_correlation_on de la vista de catlogo sys.databases. <parameterization_option> ::= Controla la opcin de parametrizacin. PARAMETERIZATION { SIMPLE | FORCED } SIMPLE Las consultas incluyen parmetros en funcin del comportamiento predeterminado de la base de datos. Para obtener ms informacin, vea Parametrizacin simple. FORCED SQL Server incluye parmetros para todas las consultas de la base de datos. Para obtener ms informacin, vea Parametrizaciones forzadas.

La configuracin actual de esta opcin se puede determinar mediante el examen de la columna is_parameterization_forced de la vista de catlogo sys.databases. <snapshot_option>::= Determina el nivel de aislamiento de las transacciones. ALLOW_SNAPSHOT_ISOLATION { ON| OFF } ON Las transacciones pueden especificar el nivel de aislamiento de transaccin SNAPSHOT. Si se ejecuta una transaccin en el nivel de aislamiento SNAPSHOT, todas las instrucciones pueden ver una instantnea de los datos al salir al comienzo de la transaccin. Si una transaccin ejecutada en el nivel de aislamiento SNAPSHOT tiene acceso a los datos de varias bases de datos, ALLOW_SNAPSHOT_ISOLATION se debe establecer en ON en todas las bases de datos o cada instruccin de la transaccin debe utilizar sugerencias de bloqueo en cualquier referencia de una clusula FROM a una tabla de una base de datos donde ALLOW_SNAPSHOT_ISOLATION sea OFF. OFF Las transacciones no pueden especificar el nivel de aislamiento de transaccin SNAPSHOT. Si se establece ALLOW_SNAPSHOT_ISOLATION en un estado nuevo (de ON a OFF o de OFF a ON), ALTER DATABASE no devuelve el control al autor de la llamada hasta confirmar todas las transacciones existentes de la base de datos. Si la base de datos ya se encuentra en el estado especificado en la instruccin ALTER DATABASE, se devuelve el control al autor de la llamada de inmediato. Si la instruccin ALTER DATABASE no se devuelve rpidamente, utilice sys.dm_tran_active_snapshot_database_transactions para determinar si se trata de transacciones de ejecucin prolongada. Si se cancela la instruccin ALTER DATABASE, la base de datos permanece en el estado en que estaba al iniciar ALTER DATABASE. Si la base de datos se encuentra en el estado PENDING_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF se pausa durante seis segundos y reintenta la operacin. La operacin para establecer la opcin en OFF puede finalizar con un error si la base de datos an se encuentra en el estado PENDING_ON despus de seis segundos. No puede cambiar el estado de ALLOW_SNAPSHOT_ISOLATION si la base de datos est establecida en OFFLINE. Si establece ALLOW_SNAPSHOT_ISOLATION en una base de datos READ_ONLY, la configuracin se mantiene si la base de datos se establece despus en READ_WRITE.

Puede cambiar la configuracin de ALLOW_SNAPSHOT_ISOLATION para las bases de datos master, model, msdb y tempdb. Si cambia la configuracin para tempdb, dicha configuracin se mantiene cada vez que la instancia del Database Engine (Motor de base de datos) se detiene y se reinicia. Si cambia la configuracin para el modelo, dicha configuracin se convierte en la predeterminada para todas las bases de datos nuevas que se crean excepto para tempdb. La opcin es ON de forma predeterminada para las bases de datos master y msdb. La configuracin actual de esta opcin se puede determinar mediante el examen de la columna snapshot_isolation_state de la vista de catlogo sys.databases. READ_COMMITTED_SNAPSHOT { ON | OFF } ON Las transacciones que especifican el nivel de aislamiento READ_COMMITTED utilizan el control de versiones de fila en lugar del bloqueo. Si se ejecuta una transaccin en el nivel de aislamiento READ_COMMITTED, todas las instrucciones pueden ver una instantnea de los datos al salir al comienzo de la instruccin. OFF Las transacciones que especifican el nivel de aislamiento READ_COMMITTED utilizan el bloqueo. Para establecer READ_COMMITTED_SNAPSHOT en ON u OFF, no puede haber ninguna conexin activa a la base de datos excepto la conexin que ejecuta el comando ALTER DATABASE. No puede cambiar el estado de esta opcin si la base de datos est establecida en OFFLINE. Si establece READ_COMMITED_SNAPSHOT en una base de datos READ_ONLY, la configuracin se mantiene si la base de datos se establece despus en READ_WRITE. READ_COMMITTED_SNAPSHOT no se puede cambiar a ON para las bases de datos master, tempdb o msdb. Si cambia la configuracin para model, dicha configuracin se convierte en predeterminada para todas las bases de datos creadas excepto para tempdb. La configuracin actual de esta opcin se puede determinar mediante el examen de la columna is_read_committed_snapshot_on de la vista de catlogo sys.databases. WITH <termination>::=

Especifica el momento en que se revierten las transacciones incompletas cuando la base de datos pasa de un estado a otro. Si se omite la clusula de terminacin, la instruccin ALTER DATABASE espera indefinidamente a que se produzca un bloqueo en la base de datos. Slo se puede especificar una clusula de terminacin y debe seguir a las clusulas SET. ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE Especifica si la operacin de reversin se ejecuta transcurrido un nmero de segundos determinado o inmediatamente. NO_WAIT Especifica que se producir un error en la solicitud si el cambio solicitado de estado u opcin de la base de datos no puede completarse inmediatamente sin esperar a que las propias transacciones se confirmen o reviertan.

Permisos
Requiere el permiso ALTER en la base de datos.

Ejemplos
A. Agregar un archivo a una base de datos
En el siguiente ejemplo se agrega un archivo de datos de 5 MB a la base de datos AdventureWorks. Copiar cdigo
USE master; GO -- Get the SQL Server data path DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); EXECUTE ( 'ALTER DATABASE AdventureWorks ADD FILE ( NAME = Test1dat2, FILENAME = '''+ @data_path + 't1dat2.ndf'', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB

)' ); GO

B. Agregar a una base de datos un grupo de archivos con dos archivos


En el siguiente ejemplo se crea el grupo de archivos Test1FG1 en la base de datos AdventureWorks y se agregan dos archivos de 5 MB al grupo de archivos. Copiar cdigo
USE master GO ALTER DATABASE AdventureWorks ADD FILEGROUP Test1FG1; GO -- Get the SQL Server data path DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); EXECUTE ( 'ALTER DATABASE AdventureWorks ADD FILE ( NAME = test1dat3, FILENAME = '''+ @data_path + 't1dat3.ndf'', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ), ( NAME = test1dat4, FILENAME = '''+ @data_path + 't1dat4.ndf'', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) TO FILEGROUP Test1FG1' ); GO

C. Agregar dos archivos de registro a una base de datos


En el siguiente ejemplo se agregan dos archivos de registro de 5 MB a la base de datos AdventureWorks. Copiar cdigo
USE master; GO -- Get the SQL Server data path

DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); EXECUTE ( 'ALTER DATABASE AdventureWorks ADD LOG FILE ( NAME = test1log2, FILENAME = '''+ @data_path + 'test2log.ldf'', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ), ( NAME = test1log3, FILENAME = '''+ @data_path + 'test3log.ldf'', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB )' ); GO

D. Quitar un archivo de una base de datos


En el siguiente ejemplo se quita uno de los archivos agregados en el ejemplo B. Copiar cdigo
USE master; GO ALTER DATABASE AdventureWorks REMOVE FILE test1dat4; GO

E. Modificar un archivo
En el siguiente ejemplo aumenta el tamao de uno de los archivos agregados en el ejemplo B. Copiar cdigo
USE master; GO ALTER DATABASE AdventureWorks MODIFY FILE (NAME = test1dat3, SIZE = 20MB); GO

F. Mover un archivo a otra ubicacin

En el siguiente ejemplo se mueve el archivo Test1dat2 creado en el ejemplo A a otro directorio. Nota: Debe mover fsicamente el archivo al directorio nuevo antes de ejecutar este ejemplo. A continuacin, detenga e inicie la instancia de SQL Server o establezca la base de datos AdventureWorks en OFFLINE y despus en ONLINE para implementar el cambio. Copiar cdigo
USE master; GO ALTER DATABASE AdventureWorks MODIFY FILE ( NAME = Test1dat2, FILENAME = N'c:\t1dat2.ndf' ); GO

G. Mover tempdb a otra ubicacin


En el siguiente ejemplo se mueve tempdb de su ubicacin actual en el disco a otra ubicacin del disco. 1. Determine los nombres de los archivos lgicos de la base de datos tempdb y su ubicacin actual en el disco. Copiar cdigo
SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('tempdb'); GO

2. Mueva fsicamente estos archivos a la ubicacin nueva E:\SQLData. Nota: En este ejemplo la ubicacin nueva especificada para los archivos tempdb es E:\SQLData. Si mueve los archivos a otra ubicacin, modifique el ejemplo para sealar dicha ubicacin. 3. Cambie la ubicacin de cada archivo con ALTER DATABASE. Copiar cdigo
USE master; GO ALTER DATABASE tempdb

MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'E:\SQLData\templog.ldf'); GO

4. Detenga y reinicie la instancia de SQL Server. 5. Compruebe el cambio de los archivos. Copiar cdigo
SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('tempdb');

H. Establecer un grupo de archivos como predeterminado


En el siguiente ejemplo, el grupo de archivos Test1FG1 creado en el ejemplo B se establece como predeterminado. A continuacin, el grupo de archivos predeterminado se restablece al grupo de archivos PRIMARY. Tenga en cuenta que PRIMARY se debe delimitar con corchetes o comillas. Copiar cdigo
USE master; GO ALTER DATABASE AdventureWorks MODIFY FILEGROUP Test1FG1 DEFAULT; GO ALTER DATABASE AdventureWorks MODIFY FILEGROUP [PRIMARY] DEFAULT; GO

I. Configurar opciones en una base de datos


En el siguiente ejemplo se establece el modelo de recuperacin y las opciones de comprobacin de pginas de datos para la base de datos de ejemplo AdventureWorks . Copiar cdigo
USE master; GO ALTER DATABASE AdventureWorks SET RECOVERY FULL, PAGE_VERIFY CHECKSUM; GO

J. Establecer la base de datos en READ_ONLY

El cambio de una base de datos o un grupo de archivos a READ_ONLY o READ_WRITE requiere el acceso exclusivo a la base de datos. En el siguiente ejemplo la base de datos se establece en el modo SINGLE_USER para tener acceso exclusivo. A continuacin, el ejemplo establece el estado de la base de datos AdventureWorks en READ_ONLY y devuelve el acceso a la base de datos a todos los usuarios. Nota: En este ejemplo se utiliza la opcin de terminacin WITH ROLLBACK IMMEDIATE en la primera instruccin ALTER DATABASE. Todas las transacciones incompletas se revierten y el resto de las conexiones a la base de datos de ejemplo AdventureWorks se desconectan de inmediato. Copiar cdigo
USE master; GO ALTER DATABASE AdventureWorks SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO ALTER DATABASE AdventureWorks SET READ_ONLY; GO ALTER DATABASE AdventureWorks SET MULTI_USER; GO

K. Habilitar el asilamiento de instantnea en una base de datos


En el siguiente ejemplo se habilita la opcin del marco de aislamiento de instantnea para la base de datos AdventureWorks. Copiar cdigo
USE AdventureWorks; GO -- Check the state of the snapshot_isolation_framework -- in the database. SELECT name, snapshot_isolation_state, snapshot_isolation_state_desc AS description FROM sys.databases WHERE name = N'AdventureWorks'; GO USE master; GO ALTER DATABASE AdventureWorks SET ALLOW_SNAPSHOT_ISOLATION ON; GO -- Check again. SELECT name, snapshot_isolation_state, snapshot_isolation_state_desc AS description FROM sys.databases

WHERE name = N'AdventureWorks'; GO

El conjunto de resultados muestra que el marco de aislamiento de instantnea est habilitado. Copiar cdigo
name snapshot_isolation_state --------------- -----------------------AdventureWorks 1 description ----------ON

L. Crear una sesin de creacin de reflejo de la base de datos con un testigo


Importante: Las directivas de compatibilidad de Microsoft no se aplican a la caracterstica de creacin de reflejo de la base de datos en SQL Server 2005. La creacin de reflejo de la base de datos est actualmente deshabilitada de forma predeterminada, pero puede habilitarla solamente con fines de evaluacin mediante la marca de traza 1400 como parmetro de inicio. (Si desea obtener ms informacin acerca de las marcas de traza, vea Marcas de traza (Transact-SQL).) La creacin de reflejo de la base de datos no debe utilizarse en entornos de produccin. Los servicios de soporte tcnico de Microsoft no ofrecern soporte a bases de datos o aplicaciones que utilicen la creacin de reflejo de la base de datos. La documentacin sobre la creacin de reflejo de la base de datos se incluye en SQL Server 2005 solamente con fines de evaluacin y la Directiva de documentacin para soporte y actualizacin de SQL Server 2005 no se aplica a la documentacin sobre la creacin de reflejo de la base de datos. La configuracin de la creacin de reflejo de la base de datos con un testigo requiere configurar la seguridad y preparar la base de datos reflejada adems de utilizar ALTER DATABASE para configurar los asociados. Para obtener un ejemplo del proceso de configuracin completo, vea Configurar la creacin de reflejo de la base de datos (Transact-SQL).

M. Conmutacin por error manual en una sesin de creacin de reflejo de la base de datos
Importante: Las directivas de compatibilidad de Microsoft no se aplican a la caracterstica de creacin de reflejo de la base de datos en SQL Server 2005. La creacin de reflejo de la base de datos est actualmente deshabilitada de forma predeterminada, pero puede habilitarla solamente con fines de evaluacin mediante la marca de traza 1400 como parmetro de inicio. (Si desea obtener ms informacin acerca de las marcas de traza, vea Marcas de traza (Transact-SQL).) La creacin de reflejo de la base de datos no debe utilizarse en

entornos de produccin. Los servicios de soporte tcnico de Microsoft no ofrecern soporte a bases de datos o aplicaciones que utilicen la creacin de reflejo de la base de datos. La documentacin sobre la creacin de reflejo de la base de datos se incluye en SQL Server 2005 solamente con fines de evaluacin y la Directiva de documentacin para soporte y actualizacin de SQL Server 2005 no se aplica a la documentacin sobre la creacin de reflejo de la base de datos. La conmutacin por error manual se puede iniciar desde cualquier asociado de creacin de reflejo de la base de datos. Antes de llevar a cabo la conmutacin por error, debe comprobar si el servidor principal actual es realmente el servidor principal. Por ejemplo, para la base de datos AdventureWorks, ejecute la siguiente consulta en la instancia del servidor que crea que es el servidor principal actual: Copiar cdigo
SELECT name, mirroring_role_desc FROM sys.databases WHERE name = N'AdventureWorks'; GO

Si la instancia del servidor es la entidad de seguridad, el valor de mirroring_role_desc es Principal. Si esta instancia del servidor se corresponde con el servidor reflejado, la instruccin SELECT debe devolver Mirror. En el siguiente ejemplo se da por supuesto que el servidor es la entidad de seguridad actual. 1. Realice una conmutacin por error manual al asociado de creacin de reflejo de la base de datos: Copiar cdigo
ALTER DATABASE AdventureWorks SET PARTNER FAILOVER; GO

2. Para comprobar los resultados de la conmutacin por error en el reflejo nuevo, ejecute la siguiente consulta: Copiar cdigo
SELECT name, mirroring_role_desc FROM sys.databases WHERE name = N'AdventureWorks'; GO

3. El valor actual de mirroring_role_desc es ahora Mirror.

Vea tambin

Referencia CREATE DATABASE (Transact-SQL) DATABASEPROPERTYEX (Transact-SQL) DROP DATABASE (Transact-SQL) SET TRANSACTION ISOLATION LEVEL (Transact-SQL) sp_configure (Transact-SQL) sp_spaceused (Transact-SQL) sys.databases (Transact-SQL) sys.database_files (Transact-SQL) sys.data_spaces (Transact-SQL) sys.filegroups (Transact-SQL) sys.master_files (Transact-SQL)

Libros en pantalla de SQL Server DROP DATABASE (Transact-SQL)

Enviar comentarios Vea tambin

Contraer todoExpandir todo Filtro de lenguaje: TodosFiltro de lenguaje: VariosFiltro de lenguaje: Visual BasicFiltro de lenguaje: C#Filtro de lenguaje: C++Filtro de lenguaje: J#Filtro de lenguaje: JScript

Quita una o varias bases de datos o instantneas de la base de datos de una instancia de SQL Server. Convenciones de sintaxis de Transact-SQL

Sintaxis
DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] [;]

Notas
Para utilizar DROP DATABASE, el contexto de base de datos de la conexin no puede ser el mismo que el de la base de datos o instantnea de la base de datos que se va a quitar. La instruccin DROP DATABASE debe ejecutarse en modo de confirmacin automtica y no se permite en una transaccin explcita o implcita. El modo de confirmacin automtica es el modo de administracin de transacciones predeterminado. Para obtener ms informacin, vea Transacciones de confirmacin automtica.

Quitar una base de datos


Las bases de datos del sistema no se pueden quitar. Al quitar una base de datos, se elimina la base de datos de una instancia de SQL Server, as como los archivos de disco fsico que utiliza. Si la base de datos o alguno de sus

archivos estn sin conexin cuando se elimina, no se eliminan los archivos de disco. Estos archivos se pueden eliminar manualmente en el Explorador de Windows. No se puede quitar una base de datos que se est utilizando en ese momento, es decir, que un usuario ha abierto para lectura o escritura. Para quitar usuarios de la base de datos, utilice ALTER DATABASE para establecer la base de datos en SINGLE_USER. Deben quitarse las instantneas de una base de datos para poder quitar esa base de datos. Si la base de datos participa en el trasvase de registros, quite el trasvase de registros antes de quitar la base de datos. Para obtener ms informacin, vea Trasvase de registros. Una base de datos se puede quitar sea cual sea su estado (sin conexin, slo lectura, sospechosa, etc.). Para ver el estado actual de una base de datos, utilice la vista de catlogo sys.databases. Una base de datos que se ha quitado slo puede volver a crearse si se restaura una copia de seguridad. No es posible realizar copias de seguridad de instantneas de la base de datos, por lo que stas no se pueden restaurar. Cuando se quita una base de datos, debe realizarse una copia de seguridad de la base de datos master.

Quitar una instantnea de la base de datos


Cuando se quita una instantnea de la base de datos, se elimina la instantnea de la base de datos de una instancia de SQL Server, as como los archivos fsicos dispersos del sistema de archivos NTFS que utiliza. Para obtener informacin sobre cmo las instantneas de la base de datos utilizan archivos dispersos, vea Funcionamiento de las instantneas de la base de datos.

Quitar una base de datos utilizada en la rplica


Para quitar una base de datos publicada para la rplica transaccional, o suscrita o publicada para la rplica de mezcla, primero es necesario quitar la rplica de la base de datos. Para obtener ms informacin sobre cmo quitar la rplica de una base de datos, vea Quitar la rplica. Si se daa una base de datos o no se puede quitar la rplica primero, o ambas cosas, la mayora de las veces todava se puede quitar la base de datos utilizando ALTER DATABASE para definirla como sin conexin y, despus, quitarla.

Argumentos
database_name

Especifica el nombre de la base de datos que se va a quitar. Para mostrar una lista de bases de datos, utilice la vista de catlogo sys.databases. database_snapshot_name Especifica el nombre de la instantnea de base de datos que se va a quitar.

Permisos
Para ejecutar DROP DATABASE, el usuario debe tener, como mnimo, el permiso CONTROL en la base de datos.

Ejemplos
A. Quitar una sola base de datos
En el ejemplo siguiente se quita la base de datos Sales. Copiar cdigo
DROP DATABASE Sales;

B. Quitar varias bases de datos


En el ejemplo siguiente se quita cada una de las bases de datos enumeradas. Copiar cdigo
DROP DATABASE Sales, NewSales;

C. Quitar una instantnea de la base de datos


En el ejemplo siguiente se quita una instantnea de la base de datos, denominada sales_snapshot0600, sin que la base de datos de origen se vea afectada. Copiar cdigo
DROP DATABASE sales_snapshot0600;

Vea tambin
Referencia

ALTER DATABASE (Transact-SQL) CREATE DATABASE (Transact-SQL) sys.databases (Transact-SQL)

Potrebbero piacerti anche