Cómo administrar SQL Server Desktop Engine (MSDE 2000) o SQL Server 2005 Express Edition con la utilidad Osql

Seleccione idioma Seleccione idioma
Id. de artículo: 325003 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

SQL Server Desktop Engine (también conocido como MSDE 2000) carece de interfaz de usuario propia porque está diseñado para ejecutarse principalmente en segundo plano. Los usuarios interactúan con MSDE 2000 por medio del programa en el que está incorporado. La única herramienta que se proporciona con MSDE 2000 es la utilidad osql. El archivo ejecutable, Sql.exe, se encuentra la carpeta MSSQL\Binn para una instancia predeterminada de MSDE 2000. Este artículo se centra en cómo administrar MSDE 2000 mediante la utilidad osql.

Si está utilizando SQL Server 2005, también puede emplear la utilidad osql para administrar SQL Server 2005 Express Edition. Sin embargo, esta característica se quitará en una versión futura de Microsoft SQL Server 2005. Recomendamos que no utilice esta característica en nuevos trabajos de desarrollo y planee la modificación de las aplicaciones que utilizan actualmente esta característica. Emplee en su lugar la utilidad Sqlcmd. Para obtener más información acerca de cómo emplear la utilidad Sqlcmd, visite el siguiente sitio web de Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/es-es/library/ms170207.aspx

Qué es Osql

La utilidad osql es una utilidad de símbolo del sistema de Microsoft Windows 32 que puede utilizarse para ejecutar instrucciones de Transact-SQL y archivos de comandos. La utilidad osql utiliza la interfaz de programación de aplicaciones (API) de la base de datos ODBC para comunicarse con el servidor.

¿Cómo se utiliza Osql?

Normalmente, la utilidad osql se emplea de las siguientes formas:
  • Los usuarios escriben instrucciones Transact-SQL de forma interactiva, con un procedimiento similar al del símbolo del sistema.
  • Los usuarios envían un trabajo de osql...
    • Especificando una sola instrucción de Transact-SQL para ejecutarse O bien

    • Señalando la utilidad a un archivo de comandos que contenga instrucciones de Transact-SQL para ejecutarse

Escribir instrucciones de Transact-SQL de forma interactiva

Para ver una lista de las opciones, con distinción entre mayúsculas y minúsculas, de la utilidad osql, escriba lo siguiente en un símbolo del sistema y, a continuación, presione ENTRAR:

osql -?

Para obtener más información sobre cada una de las opciones de la utilidad osql, consulte el tema "Utilidad osql" en los Libros en pantalla de SQL Server.

Para escribir instrucciones de Transact-SQL de forma interactiva, siga estos pasos:

  1. Compruebe que MSDE 2000 se esté ejecutando.
  2. Conéctese a MSDE 2000 (para más información, consulte la sección titulada "Conectarse a SQL Server Desktop Engine (MSDE 2000)").
  3. En el indicador osql, escriba las instrucciones de Transact-SQL y, a continuación, presione ENTRAR. Al presionar ENTRAR al final de cada línea de entrada, osql almacena en memoria caché las instrucciones de la línea.

    • Para ejecutar las instrucciones actualmente almacenadas en memoria caché, escriba "Go" y, a continuación, presione ENTRAR.

    • Para ejecutar un lote de instrucciones de Transact-SQL, escriba cada comando de Transact-SQL en líneas separadas. A continuación, escriba "Go" en la última línea para señalar el fin del lote y ejecutar las instrucciones que se encuentren almacenadas en memoria caché.

    Los resultados aparecerán en la ventana de la consola.

  4. Para salir de osql, escriba QUIT o EXIT y, a continuación, presione ENTRAR.

Enviar un trabajo de Osql

Normalmente existen dos métodos para enviar un trabajo de osql. Puede:
  • Especificar una sola instrucción de Transact-SQL

    O bien

  • Señalar la utilidad a un archivo de comandos
A continuación encontrará más información sobre cada método.

Especificar una sola instrucción de Transact-SQL

Para ejecutar una instrucción de Transact-SQL contra la instancia predeterminada local de MSDE 2000, escriba un comando como el siguiente:

osql -E -q "Transact-SQL statement"

donde

  • -E utiliza la autenticación de Microsoft Windows

    y

  • -q ejecuta la instrucción de Transact-SQL pero sin salir de osql al terminar la consulta
Para ejecutar la instrucción de Transact-SQL y salir de osql, utilice el argumento -Q en lugar de -q.

Señalar la utilidad a un archivo de comandos

Para señalar la utilidad a un archivo de comandos, siga estos pasos:
  1. Cree un archivo de comandos que contenga un lote de instrucciones de Transact-SQL (por ejemplo, misConsultas.sql).
  2. Abra un símbolo del sistema, escriba un comando como el siguiente y presione ENTRAR:

    osql -E -i archivo_entrada

    donde

    archivo_entrada es la ruta de acceso completa del archivo de comandos. Por ejemplo, si el archivo de comandos misConsultas.sql se encuentra en la carpeta C:\Consultas, deberá sustituir el parámetroarchivo_entrada por C:\Consultas\misConsultas.sql.

    Los resultados del archivo de comandos aparecerán en la ventana de la consola. Si desea dirigirlos a un archivo, deberá agregar el argumento -oarchivo_salida al comando indicado anteriormente. Por ejemplo:

    osql -E -i archivo_entrada -o archivo_salida

    donde

    archivo_salida es la ruta de acceso completa del archivo de salida.

    Para eliminar la numeración y símbolos del indicador en el resultado, agregue la opción -n al comando mostrado antes. Por ejemplo:

    osql -E -i archivo_entrada -o archivo_salida -n

Conectarse a SQL Server Desktop Engine (MSDE 2000)

Para conectarse a MSDE 2000, siga estos pasos:
  1. Compruebe que MSDE 2000 se esté ejecutando.
  2. Abra un símbolo del sistema en el equipo que alberga la instancia de MSDE 2000 a la que desee conectarse.
  3. Escriba el comando siguiente y, a continuación, presione ENTRAR:

    osql -E

    De este modo, se conectará a la instancia predeterminada local de MSDE 2000 utilizando la Autenticación de Windows.

    Para conectarse a una instancia de MSDE 2000 con nombre, escriba:

    osql -E -S nombreservidor\nombreinstancia

    Si recibiera el siguiente mensaje de error, es posible que MSDE 2000 no se esté ejecutando o que se haya proporcionado un nombre incorrecto para la instancia con nombre de MSDE 2000 instalada:
    [Memoria compartida]El servidor SQL Server no existe o se ha denegado el acceso.
    [Memoria compartida]ConnectionOpen (Connect()).
    Si logra conectarse correctamente al servidor, aparecerá el siguiente indicador:

       1>
    						
    Con él se señalará que osql se ha iniciado. A partir de ese momento, podrá escribir instrucciones de Transact-SQL de forma interactiva y los resultados aparecerán en la línea del símbolo del sistema.

Administrar MSDE 2000

Las secciones restantes del artículo le servirán de breve introducción a los comandos de Transact-SQL utilizados con más frecuencia para administrar MSDE 2000.

Crear un inicio de sesión nuevo

Un usuario no podrá conectarse a SQL Server sin proporcionar un identificador de inicio de sesión válido. El procedimiento almacenado sp_grantlogin se emplea para autorizar una cuenta de red de Microsoft Network (ya sea de usuario o de grupo) para su uso como inicio de sesión en SQL Server para la conexión a una instancia de SQL Server mediante Autenticación de Windows. El siguiente ejemplo permite que un usuario de Windows NT denominado Corporate\Test pueda conectarse a una instancia de SQL Server:
EXEC sp_grantlogin 'Corporate\Test'
				
Sólo podrán ejecutar el procedimiento almacenado sp_grantlogin los miembros de las funciones de servidor fijas sysadmin y securityadmin. Para obtener más información acerca de las funciones, vea el tema "Funciones, arquitectura de SQL Server" en los Libros en pantalla de SQL Server.

Para obtener más información acerca del procedimiento almacenado sp_grantlogin, vea el tema "sp_grantlogin" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.

El procedimiento almacenado sp_addlogin se utiliza para crear una nueva cuenta de inicio de sesión para las conexiones de SQL Server mediante Autenticación de SQL Server. En el siguiente ejemplo se crea un inicio de sesión de SQL Server para un usuario "test" con la contraseña "hello":
EXEC sp_addlogin 'test','hello'
				
Sólo podrán ejecutar el procedimiento almacenado sp_addlogin los miembros de las funciones de servidor fijas sysadmin y securityadmin. Para obtener más información acerca del procedimiento almacenado sp_addlogin, vea el tema "sp_addlogin" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.

Obtener acceso a una base de datos

Una vez conectados a una instancia de SQL Server, los usuarios no podrán realizar actividades en bases de datos hasta que dbo les conceda el acceso. Puede utilizar el procedimiento almacenado sp_grantdbaccess para agregar a la base de datos actual una cuenta de seguridad para un nuevo usuario. En el siguiente ejemplo, se agrega a la base de datos actual una cuenta para el usuario Corporate\BobJ de Microsoft Windows NT y se la denomina "Bob":
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'
				

El procedimiento almacenado sp_adduser realiza la misma función que sp_grantdbaccess. sp_adduser se incluyó para proporcionar compatibilidad con versiones anteriores, por lo que Microsoft recomienda utilizar sp_grantdbacess en su lugar.

Sólo podrán ejecutar el procedimiento almacenado sp_grantdbaccess miembros de la función de servidor fija sysadmin y de las funciones de base de datos fijas db_accessadmin y db_owner. Para obtener más información acerca del procedimiento almacenado sp_grantdbaccess, vea el tema "sp_grantdbaccess" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.

Cómo cambiar la contraseña de un inicio de sesión

Para cambiar la contraseña de un inicio de sesión, utilice el procedimiento almacenado sp_password. En el siguiente ejemplo, se cambia la contraseña del inicio de sesión "test" de "ok" a "hello":
EXEC sp_password 'ok', 'hello','test'
				

Los permisos de ejecución de aquellos usuarios que deseen cambiar la contraseña de su inicio de sesión tienen como valor predefinido la función pública. Sólo los miembros de la función sysadmin pueden cambiar la contraseña para el inicio de sesión de otro usuario. Para obtener más información acerca del procedimiento almacenado sp_password, vea el tema "sp_password" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.

Crear una base de datos

Una base de datos de MSDE 2000 está compuesta por una colección de tablas que contienen datos y otros objetos (como vistas, índices, procedimientos almacenados y activadores) que se definen para admitir las diversas actividades realizadas con los datos. Para crear una base de datos de MSDE 2000 se emplea el comando de Transact-SQL "CREATE DATABASE". Para obtener más información acerca de la creación una base de datos, vea el tema "Crear una base de datos" de los Libros en pantalla de SQL Server.

En el siguiente ejemplo, se crea la base de datos Test. Al no agregarse parámetros adicionales al comando, la base Test tendrá el mismo tamaño que la base model:
CREATE DATABASE Test
				
El permiso de CREATE DATABASE tiene como valor predefinido a los miembros de las funciones de servidor fijas sysadmin y dbcreator. Para obtener más información acerca del comando CREATE DATABASE, vea el tema "CREATE DATABASE" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.

El comando CREATE de Transact-SQL se utiliza para crear objetos de base de datos nuevos. Por ejemplo, para crear una nueva tabla, habrá que utilizar el comando "CREATE TABLE" de Transact-SQL. Para obtener más información, consulte los Libros en pantalla de SQL Server.

Hacer copias de seguridad de bases de datos y restaurarlas

El componente de copia de seguridad y restauración de SQL Server constituye un importante elemento para la protección de datos críticos almacenados en bases de datos de SQL Server.

Con una adecuada planificación, es posible recuperarse de muchos tipos de errores, como, por ejemplo:
  • Errores en los soportes
  • Errores de los usuarios
  • Pérdida permanente de un servidor
Por otra parte, realizar copias de seguridad de bases de datos y restaurarlas resulta útil para otras finalidades, como, por ejemplo, copiar una base de datos de un servidor a otro. Una forma rápida y sencilla de copiar una base de datos consiste en realizar una copia de seguridad de ella en un equipo y restaurarla en otro.

Para obtener más información acerca de las operaciones de copia de seguridad y restauración de bases de datos, vea el tema "Hacer copias de seguridad de bases de datos y restaurarlas" de los Libros en pantalla de SQL Server.

En el siguiente ejemplo, se realiza una copia de seguridad completa de la base de datos mydb, se denomina Mydb.bak a esta copia de seguridad y, a continuación, se la almacena en la carpeta C:\Msde\Backup:

BACKUP DATABASE mydb TO DISK = 'C:\MSDE\Backup\mydb.bak'
				

En el siguiente ejemplo, se realiza una copia de seguridad de registro de la base de datos mydb, se denomina Mydb_log.bak a esta copia de seguridad y, a continuación, se la almacena en la carpeta C:\Msde\Backup:

BACKUP LOG mydb TO DISK = 'C:\MSDE\Backup\mydb_log.bak'
				

Los permisos de BACKUP DATABASE y BACKUP LOG tienen como valor predefinido a los miembros de la función de servidor fija sysadmin y de las funciones de base de datos fijas db_owner y db_backupoperator. Para obtener más información acerca de la instrucción BACKUP, vea el tema "BACKUP" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.


MSDE incluye el servicio Agente SQL Server para administrar los trabajos programados. Por ejemplo, puede crear y programar un trabajo de copia de seguridad de Transact-SQL. El servicio Agente SQL Server administra la programación de los trabajos. Para obtener código de ejemplo sobre cómo utilizar diversos procedimientos almacenados con MSDE 2000 para realizar una copia de seguridad y programarla, consulte el siguiente artículo de Microsoft Knowledge Base:
241397 Cómo hacer una copia de seguridad de la base de datos de Microsoft Data Engine con Transact-SQL
Para obtener más información acerca del servicio Agente SQL Server, consulte el tema "Servicio Agente SQL Server" de los Libros en pantalla de SQL Server.

La copia de seguridad de una base de datos es sólo la mitad del proceso. Es importante saber cómo restaurar la base de datos después. En el siguiente ejemplo, se restaura la base de datos mydb a partir del archivo de copia de seguridad C:\Msde\Backup\Mydb.bak:

RESTORE DATABASE mydb FROM DISK ='C:\MSDE\Backup\mydb.bak'
				
Si la base de datos que se ha de restaurar no existe, el usuario deberá contar con permisos CREATE DATABASE para ejecutar la instrucción RESTORE. En caso de existir, los permisos de RESTORE tendrán como valor predefinido a los miembros de la función de servidor fija sysadmin y de la función de base de datos fija dbcreator, así como al propietario (dbo) de la base de datos. Para obtener más información acerca de la instrucción RESTORE, vea el tema "RESTORE" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.

Adjuntar y separar una base de datos

Los archivos del registro de transacciones y los datos de una base de datos pueden adjuntarse y, después, separarse en otro servidor o, incluso, en el mismo servidor. Separar una base de datos consiste en eliminarla de SQL Server dejando intactos los datos y los archivos del registro de transacciones que la componen. Estos datos y archivos del registro de transacciones podrán utilizarse más adelante para adjuntar la base de datos a cualquier instancia de SQL Server, incluido el servidor de donde fue separada. De este modo, se consigue que la base de datos esté disponible exactamente en el mismo estado que en el que estaba cuando fue separada. Para obtener más información, consulte el tema "Adjuntar y separar una base de datos" en los Libros en pantalla de SQL Server.

En el siguiente ejemplo, se separa la base de datos denominada mydb de la instancia actual de SQL Server:
EXEC sp_detach_db 'mydb'
				
Sólo podrán ejecutar el procedimiento almacenado sp_detach_db los miembros de la función de servidor fija sysadmin. Para obtener más información acerca del procedimiento almacenado sp_detach_db, vea el tema "sp_detach_db" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.

En el siguiente ejemplo, se adjuntan dos archivos de una base de datos denominada mydb a la instancia actual de SQL Server:
EXEC sp_attach_db @dbname = N'mydb', 
   @filename1 = N'C:\MSDE\Backup\mydb.mdf', 
   @filename2 = N'C:\MSDE\Backup\mydb.ldf'
				
La letra mayúscula N se utiliza para prefijar una constante de cadena de Unicode. En el estándar SQL-92, el prefijo "N" hace referencia al idioma nacional (National Language). Para obtener más información, consulte el artículo siguiente en Microsoft Knowledge Base:
239530 INF: Las constantes de cadena Unicode en SQL Server requieren el prefijo N
Sólo podrán ejecutar este procedimiento los miembros de las funciones de servidor fijas sysadmin y dbcreator. Para obtener más información acerca del procedimiento almacenado sp_attach_db, vea el tema "sp_attach_db" de la referencia sobre Transact-SQL de los Libros en pantalla de SQL Server.

La siguiente información sobre el uso de la utilidad osql también se aplica a todas las ediciones de Microsoft SQL Server 2000.

Referencias

Para descargar una versión actualizada de los Libros en pantalla de SQL Server 2000, visite el siguiente sitio Web de Microsoft:
http://www.microsoft.com/sql/techinfo/books.mspx
Para descargar la versión para SQL Server 7.0 de Libros en pantalla de SQL Server, visite el siguiente sitio Web de Microsoft:
http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe
Para obtener más información sobre MSDE 2000, consulte los siguientes artículos de Microsoft Knowledge Base:
319930 Cómo conectar con una instancia de SQL Server Desktop Edition o de SQL Server 2005 Express Edition
241397 Cómo hacer una copia de seguridad de la base de datos de Microsoft Desktop Engine con Transact-SQL

Propiedades

Id. de artículo: 325003 - Última revisión: viernes, 23 de marzo de 2007 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
Palabras clave: 
kbdownload kbhowtomaster KB325003
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com