Comment faire pour gérer SQL Server Desktop Engine (MSDE 2000) ou SQL Server 2005 Express Edition à l'aide de utilitaire osql

Traductions disponibles Traductions disponibles
Numéro d'article: 325003 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

SQL Server Desktop Engine (également appelé MSDE 2000) ne possède pas d'interface utilisateur propre parce qu'il est principalement conçu pour être exécuté en arrière-plan. Les utilisateurs peuvent interagir avec MSDE 2000 par le biais du programme dans lequel il est incorporé. Le seul outil fourni avec MSDE 2000 est l'utilitaire osql. Le fichier exécutable, Sql.exe, se trouve dans le dossier MSSQL\Binn pour une instance par défaut de MSDE 2000. Cet article explique comment gérer MSDE 2000 à l'aide de l'utilitaire osql.

Si vous utilisez SQL Server 2005, vous pouvez également utiliser l'utilitaire osql pour gérer SQL Server 2005 Express Edition. Toutefois, cette fonctionnalité va être supprimée dans une version future de Microsoft SQL Server 2005. Nous vous conseillons donc de ne pas utiliser cette fonctionnalité dans un nouveau travail de développement et de prévoir de modifier les applications qui utilisent actuellement cette fonctinnalité. Utilisez à la place l'utilitaire Sqlcmd. Pour plus d'informations sur la façon d'utiliser l'utilitaire Sqlcmd, reportez-vous au site Web de Microsoft Developper Network (MSDN) à l'adresse suivante :
http://msdn2.microsoft.com/fr-fr/library/ms170207.aspx

Qu'est-ce que Osql ?

L'utilitaire osql est un utilitaire d'invite de commandes Microsoft Windows 32 bits que vous pouvez utiliser pour exécuter des instructions Transact-SQL et des fichiers de script. L'utilitaire osql utilise l'interface de programmation d'application (API, Application Programming Interface) d'une base de données ODBC pour communiquer avec le serveur.

Comment utiliser Osql ?

En général, vous utilisez l'utilitaire osql comme suit :
  • Les utilisateurs entrent interactivement des instructions Transact-SQL comme ils le feraient à partir d'une invite de commandes.
  • Les utilisateurs envoient un travail osql en utilisant l'une des méthodes suivantes :
    • en spécifiant une instruction Transact-SQL unique à exécuter. - ou -

    • en pointant l'utilitaire vers un fichier de script contenant les instructions Transact-SQL à exécuter.

Saisie interactive d'instructions Transact-SQL

Pour afficher une liste des options de l'utilitaire osql (celles-ci respectent la casse), tapez la commande suivante à l'invite de commandes, puis appuyez sur ENTRÉE :

osql -?

Pour plus d'informations sur chacune des options de l'utilitaire osql, reportez-vous à la rubrique "osql Utility" (Utilitaire osql) dans la documentation en ligne de SQL Server.

Pour entrer interactivement des instructions Transact-SQL, procédez comme suit :

  1. Vérifiez que MSDE 2000 est en cours d'exécution.
  2. Connectez-vous à MSDE 2000. Pour plus d'informations, reportez-vous à la section "Connexion à SQL Server Desktop Engine (MSDE 2000)".
  3. À l'invite osql, tapez les instructions Transact-SQL, puis appuyez sur ENTRÉE. Lorsque vous appuyez sur ENTRÉE à la fin de chaque ligne, osql met en cache les instructions de cette ligne.

    • Pour exécuter les instructions actuellement mises en cache, tapez "Go", puis appuyez sur ENTRÉE.

    • Pour exécuter un lot d'instructions Transact-SQL, entrez chaque commande Transact-SQL sur des lignes séparées. Tapez ensuite "Go" à la dernière ligne pour signaler la fin du lot et exécuter les instructions actuellement mises en cache.

    Les résultats s'affichent dans la fenêtre de la console.

  4. Pour quitter osql, tapez QUIT ou EXIT, puis appuyez sur ENTRÉE.

Envoi d'un travail Osql

En général, vous pouvez envoyer un travail osql de deux manières différentes. Vous pouvez :
  • spécifier une instruction Transact-SQL unique.

    - ou -

  • pointer l'utilitaire vers un fichier de script.
Vous trouverez ci-après plus d'informations sur chaque méthode.

Spécification d'une instruction Transact-SQL unique

Pour exécuter une instruction Transact-SQL en fonction de l'instance locale par défaut de MSDE 2000, tapez une commande semblable à celle-ci :

osql -E -q "instruction Transact-SQL"



  • -E utilise l'authentification Microsoft Windows NT.

    - et -

  • -q exécute l'instruction Transact-SQL, mais ne ferme pas osql une fois la requête terminée.
Pour exécuter l'instruction Transact-SQL et quitter osql, utilisez l'argument -Q à la place de -q.

Pointage de l'utilitaire vers un fichier de script

Pour pointer l'utilitaire vers un fichier de script, procédez comme suit :
  1. Créez un fichier de script contenant un lot d'instructions Transact-SQL (tel que myQueries.sql).
  2. Ouvrez une invite de commandes, tapez une commande semblable à la suivante, puis appuyez sur ENTRÉE :

    osql -E -i fichier_entrée



    fichier_entrée est le chemin d'accès complet du fichier de script. Par exemple, si le fichier de script myQueries.sql se trouve dans le dossier C:\Queries, remplacez le paramètre fichier_entrée par C:\Queries\myQueries.sql.

    Les résultats du fichier de script s'affichent dans la fenêtre de la console. Pour diriger les résultats vers un fichier, ajoutez l'argument -ofichier_sortie à la commande indiquée plus haut. Par exemple :

    osql -E -i fichier_entrée -o fichier_sortie



    fichier_sortie est le chemin d'accès complet du fichier de sortie.

    Pour supprimer la numérotation et les symboles d'invite dans la sortie, ajoutez l'option -n à la commande indiquée plus haut. Par exemple :

    osql -E -i fichier_entrée -o fichier_sortie -n

Connexion à SQL Server Desktop Engine (MSDE 2000)

Pour vous connecter à MSDE 2000, procédez comme suit :
  1. Vérifiez que MSDE 2000 est en cours d'exécution.
  2. Ouvrez une invite de commandes sur l'ordinateur qui héberge l'instance de MSDE 2000 à laquelle vous souhaitez vous connecter.
  3. Tapez la commande suivante, puis appuyez sur ENTRÉE :

    osql -E

    Ceci vous connecte à l'instance locale par défaut de MSDE 2000 en utilisant l'authentification Windows.

    Pour vous connecter à une instance nommée de MSDE 2000, tapez la commande suivante :

    osql -E -S nom_serveur\nom_instance

    Si le message d'erreur suivant s'affiche, il se peut que MSDE 2000 ne soit pas en cours d'exécution ou que vous ayez entré un nom incorrect pour l'instance nommée de MSDE 2000 qui est installée :
    [Mémoire partagée]Ce serveur SQL n'existe pas ou son accès est refusé.
    [Mémoire partagée]ConnectionOpen (Connect()).
    Si vous êtes correctement connecté au serveur, l'invite suivante s'affiche :

       1>
    						
    Cette invite indique que osql est démarré. Vous pouvez désormais entrer interactivement des instructions Transact-SQL et les résultats s'afficheront sur la ligne d'invite de commandes.

Gestion de MSDE 2000

Les sections restantes de cet article décrivent brièvement les commandes Transact-SQL les plus couramment utilisées pour gérer MSDE 2000.

Création d'une connexion

Pour se connecter à SQL Server, un utilisateur doit fournir une ID de connexion valide. La procédure stockée sp_grantlogin permet d'autoriser l'utilisation d'un compte réseau Microsoft Windows (compte de groupe ou compte d'utilisateur) en tant que connexion SQL Server pour se connecter à une instance de SQL Server à l'aide de l'authentification Windows. L'exemple suivant permet à un utilisateur Windows NT nommé Corporate\Test de se connecter à une instance de SQL Server :
EXEC sp_grantlogin 'Corporate\Test'
				
Seuls les membres des rôles de serveur fixés sysadmin ou securityadmin peuvent exécuter la procédure stockée sp_grantlogin. Pour plus d'informations sur ces rôles, reportez-vous à la rubrique "Roles, SQL Server Architecture" (Rôles, Architecture de SQL Server) dans la documentation en ligne de SQL Server.

Pour plus d'informations sur la procédure stockée sp_grantlogin, reportez-vous à la rubrique "sp_grantlogin, Transact-SQL Reference" (sp_grantlogin, Référence Transact-SQL) dans la documentation en ligne de SQL Server.

Vous utilisez la procédure stockée sp_addlogin pour créer un nouveau compte de connexion pour les connexions SQL Server à l'aide de l'authentification SQL Server. L'exemple suivant crée une connexion SQL Server pour un utilisateur nommé "test" avec le mot de passe "hello" :
EXEC sp_addlogin 'test','hello'
				
Seuls les membres des rôles de serveur fixés sysadmin et securityadmin peuvent exécuter la procédure stockée sp_addlogin. Pour plus d'informations sur la procédure stockée sp_addlogin, reportez-vous à la rubrique "sp_addlogin, Transact-SQL Reference" (sp_addlogin, Référence Transact-SQL) dans la documentation en ligne de SQL Server.

Accès à une base de données

Après s'être connecté à une instance de SQL Server, un utilisateur ne peut pas exécuter d'activités dans une base de données tant que dbo ne lui accorde pas l'accès à la base de données. Vous pouvez utiliser la procédure stockée sp_grantdbaccess pour ajouter un compte de sécurité pour un nouvel utilisateur à la base de données active. L'exemple suivant ajoute un compte pour un utilisateur Microsoft Windows NT nommé Corporate\BobJ à la base de données active et le nomme "Bob" :
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'
				

La procédure stockée sp_adduser exécute la même fonction que la procédure stockée sp_grantdbaccess. Étant donné que la procédure stockée sp_adduser est incluse pour des raisons de compatibilité ascendante, Microsoft vous recommande d'utiliser la procédure stockée sp_grantdbacess.

Seuls les membres du rôle de serveur fixé sysadmin et des rôles de base de données fixés db_accessadmin et db_owner peuvent exécuter la procédure stockée sp_grantdbaccess. Pour plus d'informations sur la procédure stockée sp_grantdbaccess, reportez-vous à la rubrique "sp_grantdbaccess, Transact-SQL Reference" (sp_grantdbaccess, Référence Transact-SQL) dans la documentation en ligne de SQL Server.

Modification du mot de passe d'une connexion

Pour modifier le mot de passe d'une connexion, utilisez la procédure stockée sp_password. Dans l'exemple suivant, le mot de passe "ok" de la connexion "test" est remplacé par "hello" :
EXEC sp_password 'ok', 'hello','test'
				

Les autorisations d'exécution sélectionnent par défaut le rôle public pour un utilisateur qui modifie le mot de passe pour sa propre connexion. Seuls les membres du rôle sysadmin peuvent modifier le mot de passe pour la connexion d'un autre utilisateur. Pour plus d'informations sur la procédure stockée sp_password, reportez-vous à la rubrique "sp_password, Transact-SQL Reference" (sp_password, Référence Transact-SQL) dans la documentation en ligne de SQL Server.

Création d'une base de données

Une base de données MSDE 2000 comprend une collection de tables contenant des données et d'autres objets, tels que des affichages, des index, des procédures stockées et des déclencheurs, qui sont définis pour prendre en charge des activités effectuées avec les données. Pour créer une base de données MSDE 2000, utilisez la commande Transact-SQL "CREATE DATABASE". Pour plus d'informations sur la création d'une base de données, reportez-vous à la rubrique "Creating a Database" (Création d'une base de données) dans la documentation en ligne de SQL Server.

L'exemple suivant crée une base de données nommée Test. Aucun paramètre supplémentaire n'étant ajouté à la commande, la base de données Test aura la même taille que la base de données modèle :
CREATE DATABASE Test
				
L'autorisation de CREATE DATABASE va par défaut aux membres des rôles de serveur fixés sysadmin et dbcreator. Pour plus d'informations sur la commande "CREATE DATABASE", reportez-vous à la rubrique "CREATE DATABASE, Transact-SQL Reference" (CREATE DATABASE, Référence Transact-SQL) dans la documentation en ligne de SQL Server.

Pour créer un objet de base de données, utilisez la commande Transact-SQL CREATE. Par exemple, pour créer une nouvelle table, utilisez la commande Transact-SQL "CREATE TABLE". Pour plus d'informations, reportez-vous à la documentation en ligne de SQL Server.

Sauvegarde et restauration de bases de données

Le composant de sauvegarde et de restauration de SQL Server est un moyen de précaution important pour protéger les données critiques qui sont enregistrées dans les bases de données SQL Server.

Avec une bonne organisation, vous pouvez récupérer après de nombreuses défaillances, notamment :
  • une défaillance de média.
  • des erreurs des utilisateurs.
  • la perte permanente d'un serveur.
Par ailleurs, les opérations de sauvegarde et de restauration de bases de données peuvent être utilisées à d'autres fins, par exemple pour copier une base de données d'un serveur à un autre. En sauvegardant une base de données d'un ordinateur et en la restaurant sur un autre, vous pouvez effectuer rapidement et facilement une copie d'une base de données.

Pour plus d'informations sur les opérations de sauvegarde et de restauration de bases de données, reportez-vous à la rubrique "Backing Up and Restoring Databases" (Sauvegarde et restauration de bases de données) dans la documentation en ligne de SQL Server.

L'exemple suivant effectue une sauvegarde de base de données complète pour une base de données nommée mydb, nomme la sauvegarde Mydb.bak, puis l'enregistre dans le dossier C:\Msde\Backup :

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

L'exemple suivant effectue une sauvegarde du journal pour une base de données nommée mydb, nomme la sauvegarde Mydb_log.bak, puis l'enregistre dans le dossier C:\Msde\Backup :

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

Les autorisations de BACKUP DATABASE et BACKUP LOG vont par défaut aux membres du rôle de serveur fixé sysadmin et des rôles de base de données fixés db_owner et db_backupoperator. Pour plus d'informations sur l'instruction BACKUP, reportez-vous à la rubrique "BACKUP, Transact-SQL Reference" (BACKUP, Référence Transact-SQL) dans la documentation en ligne de SQL Server.


MSDE inclut le service Agent SQL Server pour gérer les travaux planifiés. Par exemple, vous pouvez créer et planifier un travail de sauvegarde Transact-SQL. Le service Agent SQL Server gère la planification des travaux. Pour obtenir un exemple de code sur la façon d'utiliser les différentes procédures stockées avec MSDE 2000 pour effectuer et planifier une sauvegarde, consultez l'article suivant dans la Base de connaissances Microsoft :
241397 Comment faire pour sauvegarder une base de données Microsoft Data Engine à l'aide de Transact-SQL
Pour plus d'informations sur le service Agent SQL Server, reportez-vous à la rubrique "SQL Server Agent Service" (Service Agent SQL Server) dans la documentation en ligne de SQL Server.

La sauvegarde d'une base de données ne constitue que la moitié du processus. Il est tout aussi important de savoir comment restaurer la base de données à partir d'une sauvegarde. L'exemple suivant restaure une base de données nommée mydb à partir du fichier de sauvegarde C:\Msde\Backup\Mydb.bak :

RESTORE DATABASE mydb FROM DISK ='C:\MSDE\Backup\mydb.bak'
				
Si la base de données qui est restaurée n'existe pas, l'utilisateur doit disposer des autorisations CREATE DATABASE pour exécuter l'instruction RESTORE. Si la base de données existe, les autorisations de RESTORE vont par défaut aux membres des rôles de serveur fixés sysadmin et dbcreator et le propriétaire (dbo) de la base de données. Pour plus d'informations sur l'instruction RESTORE, reportez-vous à la rubrique "RESTORE, Transact-SQL Reference" (RESTORE, Référence Transact-SQL) dans la documentation en ligne de SQL Server.

Attachement et détachement d'une base de données

Les données et les fichiers du journal des transactions d'une base de données peuvent être détachés puis rattachés à un autre serveur, voire au même serveur. Le détachement d'une base de données supprime la base de données de SQL Server, mais laisse la base de données intacte dans les données et les fichiers du journal des transactions qui composent la base de données. Vous pouvez ensuite utiliser ces données et fichiers du journal des transactions pour attacher la base de données à toute instance de SQL Server, y compris le serveur à partir duquel la base de données a été détachée. La base de données est alors disponible dans le même état qu'au moment du détachement. Pour plus d'informations, reportez-vous à la rubrique "Attaching and Detaching a Database" (Attachement et détachement d'une base de données) dans la documentation en ligne de SQL Server.

L'exemple suivant détache une base de données nommée mydb de l'instance active de SQL Server :
EXEC sp_detach_db 'mydb'
				
Seuls les membres du rôle de serveur fixé sysadmin peuvent exécuter la procédure stockée sp_detach_db. Pour plus d'informations sur la procédure stockée sp_detach_db, reportez-vous à la rubrique "sp_detach_db, Transact-SQL Reference" (sp_detach_db, Référence Transact-SQL) dans la documentation en ligne de SQL Server.

L'exemple suivant attache deux fichiers d'une base de données nommée mydb à l'instance active 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 lettre majuscule N est utilisée pour préfixer une constante de chaîne Unicode. Le préfixe "N" signifie "National Language" dans la norme SQL-92. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances Microsoft :
239530 INF : Les constantes de chaîne Unicode dans SQL Server nécessitent le préfixe N
Seuls les membres des rôles de serveur fixés sysadmin et dbcreator peuvent exécuter cette procédure. Pour plus d'informations sur la procédure stockée sp_attach_db, reportez-vous à la rubrique "sp_attach_db, Transact-SQL Reference" (sp_attach_db, Référence Transact-SQL) dans la documentation en ligne de SQL Server.

Les informations suivantes sur l'utilisation de l'utilitaire osql s'appliquent également à toutes les éditions de Microsoft SQL Server 2000.

Références

Pour télécharger une version mise à jour de la documentation en ligne de SQL Server, reportez-vous au site Web de Microsoft à l'adresse suivante (en anglais) :
http://www.microsoft.com/sql/techinfo/books.mspx
Pour télécharger la version SQL Server 7.0 de la documentation en ligne de SQL Server, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe
Pour plus d'informations sur MSDE 2000, consultez les articles suivants dans la Base de connaissances Microsoft :
319930 Comment faire pour se connecter à Microsoft Desktop Engine
241397 Comment faire pour sauvegarder une base de données Microsoft Desktop Engine à l'aide de Transact-SQL

Propriétés

Numéro d'article: 325003 - Dernière mise à jour: vendredi 23 mars 2007 - Version: 2.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
Mots-clés : 
kbdownload kbhowtomaster KB325003
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

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