locked
Désinstaller Instances SQL Server 2008 RRS feed

  • Question

  • Bonjour,

     

    Suite à diverses essais de MAJ et d'installations de SQL Server 2008 Express Adanced Services, je me retrouve avec 3 instances présentes sur ma machine.

    Même si elle ne me gêne pas plus que cela, je voudrais bien faire le ménage...

    Or avec le programme d'installation, je peux mettre à jour des anciennes versions, ajouter de nouvelles instances, modifier les fonctionnalités des instances déjà installées, mais je ne vois pas comment désinstaller une instance !

     

    Une piste ?

     

    Merci par avance.
    Loïc Berthollet.

     

    dimanche 31 août 2008 17:09

Réponses

  • Bonjour,

     

    Je suis désolé d'avoir mis tant de temps à répondre.

    Vous devez passez par le panneau de configuration, installation/desinstallation de programmes et choisissez Sql Server.

    Vous arriverez dans le programme de setup de Sql Server 2008 qui vous permettra de choisir l'instance que vous voulez.

    désinstaller

     

    Bonne journée

    mardi 9 septembre 2008 21:04
  • Bonjour,

     

    Je suppose que vous allez installer une instance Sql Server dont le nom est SQLEXPRESS2008

    vous avez juste à modifier une petite partie de vôtre chaîne de connexion

    remplacez

    Data Source=EWQVILDT009\SQLEXPRESS2008

     

    par

    Data Source=.\SQLEXPRESS2008

     

    EWQVILDT009 est le nom de votre ordinateur, si vous le remplacez par . (point), cela signifie que votre instance est locale ( donc installée sur l'ordinateur sur lequel vous travaillez ).

    De cette façon, vous n'avez pas besoin de connaître le nom de l'ordinateur sur lequel se trouveront l'instance Sql Server et l'application qui y accède.

     

    Par contre, je n'aime pas le principe d'utiliser app.config ( bonjour les dégats le jour où quelqu'un le modifiera même involontairement )

    J'utilise SqlConnection pour me connecter et voici ce que serait mon code ( en VC# , facile à traduire en VB )

    SqlConnectionStringBuilder bu = new SqlConnectionStringBuilder();

    bu.DataSource = Environment.MachineName + @"\" + "SQLEXPRESS2008";

    bu.InitialCatalog = EFDemoDatabase; // nom de la base

    bu.IntegratedSecurity = true;  // windows authentification

    bu.MultipleActiveResultSets = true;  (MARS ? )

    bu.Pooling = false;

    SqlConnection conn = new SqlConnection(bu.ConnectionString);

     

    C'est plus long à taper mais bien plus sûr d'utilisation ( sens sécurité )

    A moins que ce ne soit vôtre produit de développement qui le fasse pour vous.

    Personnellement, je n'utilise plus tous les "wizards" (connection,command...), car j'ai rencontré beaucoup de difficultés avec des emplacements différents pour les bases de données, ou quand on est obligé de modifier la structure de la base ou d'une de ses tables. J'écris tout le code, mais ça va vite et surtout je sais ce que j'ai codé et je sais où modifier en cas de modification d'une table ( j'ai perdu plusieurs fois tout mon code correspondant a des tableadapters suite à des modifications d'une table ). De plus, cela m'a permis de mieux comprendre comment marche une connection,une commande ou une datable...

     

    N'hésitez pas à poster à nouveau pour plus d'aide ou d'explications

     

    Bonne journée

     

    mercredi 10 septembre 2008 13:49

Toutes les réponses

  • Bonjour,

     

    S'il vous plait, pourriez-vous préciser si vos instances sont en version "RTM"  ( donc officielles ) ou version pre-release ( RC0 ou antérieures CTP ) ?

    La procédure est différente ( par exemple pour les CTP, la desinstallation "automatique" est loin d'être complète , et il faut souvent nettoyer le registre manuellement )

     

    Pourriez-vous jeter un coup d'oeil sur ce lien ( en anglais ) ?

    https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3644145&SiteID=1

    ainsi que celui-ci ( en français ) :

    http://msdn.microsoft.com/fr-fr/library/ms143412.aspx

     

    N'hésitez pas à poster à nouveau pour plus d'aide ou d'explications

     

    Bonne journée

     

     

    mardi 2 septembre 2008 06:21
  • Tout d'abord, merci de votre aide.

     

    Ma version est la 10.0.1600.22 qui est je crois la version RTM de SQL Server 2008 Express.

    Ce que je vois dans "Sql Server Configuration Manager" :

     

    Type de service: SQL Server; Nom: SQL Server (MSSMLBIZ)

    Type de service: SQL Server; Nom: SQL Server (SQLEXPRESS)

    Type de service: SQL Server; Nom: SQL Server (SQLEXPRESS2008)

     

    Type de service: Full-Text Filter Daemon; Nom: SQL Full-Text Filter Daemon Launcher (SQLEXPRESS)

    Type de service: Full-Text Filter Daemon; Nom: SQL Full-Text Filter Daemon Launcher (SQLEXPRESS2008)

    Type de service: ReportServer; Nom: SQL Reporting Services (SQLEXPRESS)

    Type de service: ReportServer; Nom: SQL Reporting Services (SQLEXPRESS2008)

     

    Type de service: SQL Agent;Nom: Agent SQL Server (MSSMLBIZ)

    Type de service: SQL Agent; Nom: Agent SQL Server (SQLEXPRESS)

    Type de service: SQL Agent; Nom: Agent SQL Server (SQLEXPRESS2008)

     

    Type de service: SQL Browser; Nom: SQL Server Browser

     

    Ce que je souhaite supprimer, c'est l'instance nommée SQLEXPRESS; je souhaite conserver l'instance SQLEXPRESS2008. La ...BIZ est inaccessible, je ne l'ai pas installée moi-même.

     

    Dans le programme d'installation, je ne voit pas d'instance nommée, je ne vois que que les programmes Enregistreurs VSS, SQL Server, Management Studio, Native Client, Browser, ...

     

    J'ai peur qu'en suivant la procédure indiqué ici http://msdn.microsoft.com/fr-fr/library/ms143412.aspx, je désinstalle toutes les instances et que je sois obligé de réinstaller ensuite.

    De plus, dans le panneau de configuration, il y moult programmes qui font reférence à supprimer, et franchement cela m'inquiète; je crains pour la stabilité de visual studio...

     

    est-il donc possible de ne supprimer que l'instance nommée (SQLSERVER) ?

    mardi 2 septembre 2008 20:48
  • Bonjour,

     

    Je suis désolé d'avoir mis tant de temps à répondre.

    Vous devez passez par le panneau de configuration, installation/desinstallation de programmes et choisissez Sql Server.

    Vous arriverez dans le programme de setup de Sql Server 2008 qui vous permettra de choisir l'instance que vous voulez.

    désinstaller

     

    Bonne journée

    mardi 9 septembre 2008 21:04
  • Merci beaucoup pour votre aide, cela a fonctionné.

     

    Pour l'anecdote, j'ai perdu au passage Management Studio... que j'ai immédiatement ré-installé !

    En fait, je suis allé un peu vite avec les coches de fonctionnalités partagées à désinstaller...

     

     

    Puisque vous avez l'air de bien connaître le sujet, j'aimerais vous poser 2 questions :

    • J'ai une instance nommée MSMSLBIZ que je ne l'ai pas installé. Savez-vous quel est le responsable (VS2008, live mail, Vista, ...). Je la supprimerai bien, mais j'ai comme un gros doute...
    • Dans la chaîne de connexion que VS2008 pousse dans le fichier App.Config, je vois le nom de l'instance de SQL, mais aussi le nom de mon compte utilisateur. Evidément, en clientèle, ces noms ne correspondront à rien !
      Comment faire ?

    Merci d'avance.

    Loïc

     

    mardi 9 septembre 2008 22:02
  • Bonjour,

     

    MSMSLBIZ est une instance Sql Server correspondant à l'un des produits suivants BCM ( Business Contact Manager ) ou CRM qui devraient être pré-installés avec votre PC.

    Attention, je sais qu'il y a de gros problèmes avec ces 2 logiciels lorsque l'on installe Sql Server 2008

     

    En ce qui concerne la chaîne de connexion, il y a 2 possiblités mais je préfererai que vous postiez votre chaîne.Suivant sa structure, il sera plus facile pour vous indiquer comment faire.

    Personnellement, je préfere utiliser systématiquement une boîte de dialogue Connection à la base, ce qui évite tout problème de stockage de données sensibles comme un login Windows ou Sql Server ou un mot de passe ( j'ai même vu des programmeurs qui obligeaient la saisie du mot de passe du login Sql Server "sa" en clair, ainsi tout le monde pouvait le connaître !!!)

     

    J'attends votre chaîne de connection pour pouvoir mieux vous aider

     

    Bonne journée

     

    mercredi 10 septembre 2008 06:37
  • En fait, ma problématique est un peu différente:

    Les clients sont des labos de production de produits chimiques liés à la fabrication de circuits imprimés. Ce sont les fabricants qui les utilisent pour controler la qualité de leurs produits.

    Le PC utilisé est situé dans le labo de controle qualité, et seul les opérateurs y ont accès. Ce PC n'est surtoût pas relié à internet, ni même souvent pas relié au réseau de l'entreprise. Il n'y a donc pas de problème de sécurité. Le PC étant relié exclusivement à notre instrument, SQL Server 2008 Express sera installé via l'installation de notre logiciel (merci InstallAware...). SQL sera donc installé en autonome.

    Jusque là nous utilisions un fichier Access. La problématique de la connexion était alors tout autre !

     

    Ce que je ne sais donc pas, c'est comment me connecter à cette instance de SQL que nous aurons nous-même installé !

    Mais je compte me plonger dans la documentation d'InstallAware pour voir ce que je peux faire.

    Note: InstallAware est capable d'installer en "one-click" SQL Server express 2008 depuis le 8 septembre.

     

    En attendant, voici ma chaine de connexion pour le développement :

     

    Code Snippet

    <?xml version="1.0" encoding="utf-8"?>

    <configuration>

      <configSections>

      </configSections>

      <connectionStrings>

    <add name="EFDemoDatabaseEntities" connectionString="metadata=res://*/BusinessDataModel.csdl|res://*/BusinessDataModel.ssdl|res://*/BusinessDataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=EWQVILDT009\SQLEXPRESS2008;Initial Catalog=EFDemoDatabase;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

      </connectionStrings>

    </configuration>

     

     

    mercredi 10 septembre 2008 12:00
  • Bonjour,

     

    Je suppose que vous allez installer une instance Sql Server dont le nom est SQLEXPRESS2008

    vous avez juste à modifier une petite partie de vôtre chaîne de connexion

    remplacez

    Data Source=EWQVILDT009\SQLEXPRESS2008

     

    par

    Data Source=.\SQLEXPRESS2008

     

    EWQVILDT009 est le nom de votre ordinateur, si vous le remplacez par . (point), cela signifie que votre instance est locale ( donc installée sur l'ordinateur sur lequel vous travaillez ).

    De cette façon, vous n'avez pas besoin de connaître le nom de l'ordinateur sur lequel se trouveront l'instance Sql Server et l'application qui y accède.

     

    Par contre, je n'aime pas le principe d'utiliser app.config ( bonjour les dégats le jour où quelqu'un le modifiera même involontairement )

    J'utilise SqlConnection pour me connecter et voici ce que serait mon code ( en VC# , facile à traduire en VB )

    SqlConnectionStringBuilder bu = new SqlConnectionStringBuilder();

    bu.DataSource = Environment.MachineName + @"\" + "SQLEXPRESS2008";

    bu.InitialCatalog = EFDemoDatabase; // nom de la base

    bu.IntegratedSecurity = true;  // windows authentification

    bu.MultipleActiveResultSets = true;  (MARS ? )

    bu.Pooling = false;

    SqlConnection conn = new SqlConnection(bu.ConnectionString);

     

    C'est plus long à taper mais bien plus sûr d'utilisation ( sens sécurité )

    A moins que ce ne soit vôtre produit de développement qui le fasse pour vous.

    Personnellement, je n'utilise plus tous les "wizards" (connection,command...), car j'ai rencontré beaucoup de difficultés avec des emplacements différents pour les bases de données, ou quand on est obligé de modifier la structure de la base ou d'une de ses tables. J'écris tout le code, mais ça va vite et surtout je sais ce que j'ai codé et je sais où modifier en cas de modification d'une table ( j'ai perdu plusieurs fois tout mon code correspondant a des tableadapters suite à des modifications d'une table ). De plus, cela m'a permis de mieux comprendre comment marche une connection,une commande ou une datable...

     

    N'hésitez pas à poster à nouveau pour plus d'aide ou d'explications

     

    Bonne journée

     

    mercredi 10 septembre 2008 13:49
  • Encore merci: cela fonctionne très bien.

     

    Effectivement votre code pour se connecter à la base est bien plus sécurisée que l'app.config. : pas de risque de modification en clientèle ou de le perdre via en wizard en déroute.

     

    Je partage votre avis quand au risque de perte de codes qu'implique l'utilisation des wizards.

    D'ailleurs, j'ai sauvé l'ensemble des scripts de création de la base et je les maintiens à jour quand la structure de base est modifiée. Et bien comprendre ce que font les wizards et comment fonctionne les outils qu'ils manipulent me parait essentiel également.

     

    Mais d'un autre coté, je suis le seul développeur du projet, et le domaine est si vaste que parfois les wizard permettent de gagner un temps précieux.

    Car, en l'occurence, comme c'est un nouveau projet, j'en ai profité pour essayer Entity Framework. Je l'ai vite adopté:

    N'étant pas un spécialiste en base de données et ayant des besoins extrêmeent simple, je trouve qu'il me simplifie grandement la vie, et jusque là je n'ai eu aucun soucis d'ordre fonctionnel. Il est vrai aussi que la structure de ma base est franchement rudimentaire et que la performance n' aucune importance.

    Mais c'est vrai que j'ai quand même peur que l' entity model explose lors d'une modification de la table, envoyant au paradis des bits toute ses modifications que j'y ait apporté...

     

    Enfin, bref, j'essaie, j'hésite, je doute. Aussi, j'apprécie tout particulièrement le fait de partager des expériences avec d'autres personnes, et je vous remercie encore pour votre aide et vos conseils.

     

     

    Une dernière question qui me chiffone: je dois distribuer avec mon appli une base de données avec déjà pleins de contenus. Je sais que sous Vista, j'ai intérêt à la placer dans les répertoires utilisateurs prévus à cet effet, paragés ou non; mais dans ce cas là, comment la rattache t-on à SQL ? (c'est une problématique nouvelle pour moi : j'utilisais auparavant une base Acces attaqué via VB6 et Jet (beurk)...)

     

    Loïc
    jeudi 11 septembre 2008 06:50
  • Bonjour,

     

    Je connais assez bien le sujet sauf que je suis "vieux-jeu", je ne travaille que sous XP Pro .

    Vous devez faire face à plusieurs problèmes et faire des choix.

     

    - soit vous choisissez d'installer votre base de données complète ( avec les données ) en même temps que votre application. Dans ce cas, il vous faudra attacher vos fichiers de bases de données ( .mdf et .ldf, ce dernier n'est pas franchement utile ) à une instance Sql Server dont vous ne connaissez pas forcément le nom ( il peut y avoir déjà une instance installée et le client vouloir que vous mettiez votre base dans l'instance existante : pas plus de 16 instances Sql Server Express sur une machine, de plus chaque instance consomme de la mémoire...)

     

    - soit vous choisissez de créer votre base de données lors de la 1ère utilisation de l'application et vous chargez les tables à partir de fichiers que vous ajoutez à votre distribution. La création de la base peut se faire

    - a)  à partir d'un script de création que vous lisez dans un String que vous passez à un SqlCommand.ExecuteNonQuery(votrechaîne).Avantage : rapide  inconvénient : tout le monde peut connaître votre structure de base

    - b) avec Smo, vous écrivez un programme de création de bases.Avantage : sauf avec SqlCmd ou SSMSEE, personne ne pourra voir votre structure de base  Inconvénient : c'est long à écrire,ce n'est pas simple ( malgré 3 ans de pratique de Smo, il m'a fallu 3 mois pour écrire un programme permettant de créer une base similaire à AdventureWorks : 60 tables, 11 fonctions, et plus de vingt procédures stockées ), et enfin, la création est 2 fois plus longue par Smo que par un script

     

    Si le client vous impose l'utilisation d'une instance Sql Server particulière,cela pourra être simple, mais s'il faut rechercher une instance utilisable, il faudra utiliser SmoApplication.EnumAvailableServers qui est assez capricieuse...

     

    Pour attacher une base à une instance, la façon "bateau" est d'utiliser la procédure stockée système sp_attach_db   

    http://msdn.microsoft.com/en-us/library/ms179877.aspx

    ( voir la remarque en entête sur la survie de cette procédure )

    Attention, on ne peut pas attacher une base avec des fichiers en Read-Only )

     

    L'autre solution est de faire un backup de la base ( backup SQL Server ) , de l'installer sur votre machine client et de faire un restore ( restoreSQL Server ). L'attachement est fait automatiquement

    Par contre, je ne me rappelle plus si le backup est en Read-Only

     

    En ce qui concerne l'entity model, je n'est aucune idée car je n'ai pas eu le temps de m'y interesser ( pour le moment )

     

    J'ai connu pendant 5 ans les joies d'être seul informaticien dans une société de 100 personnes : ingénieur système,DBA,

    développeur, chef de projet, et les discussions de contrats avec les fournisseurs ( hard/software ). Interessant mais épuisant

     

    J'ai fait pendant 3 ans du C++/VB 4 ==> 6 , du Jet et du Sql Server 6.5 : oui beurk comparativement aux outils de maintenant

     

    Je n'ai fait que donner des idées générales car il faut tenir compte des volontés de votre société et des clients ( pas toujours évident à concilier )

     

    N'hésitez pas à reposter pour plus de précisions ou d'aide

     

    Bonne journée

     

    PS : Allez sur le forum us MSDN Sql Server Express

    http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=385&SiteID=1

    et prenez le temps "d'éplucher" les 3 ou 4 posts de Mike Wachal en haut du forum.

    Vous y trouverez une mine de renseignements et de liens concernant Sql Server Express ( utilisation,déploiement...).

    Mike travaille dans l'équipe Sql Server Express de Microsoft et il est un peu le tampon entre MS et les posters, ce qui permet à l'équipe de MS Server Server Express de "sentir" les amélorations à apporter au produit.

    De plus, Mike écrit trés bien et très clairement , un régal

     

     

    jeudi 11 septembre 2008 16:18