Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est la chaîne de connexion pour localdb pour la version 11

  1. Nécessite .NET Framework 4 mis à jour au moins vers 4.0.2. Si vous avez 4.0.2, alors vous devriez avoir

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319\SKUs.NETFramework,Version=v4.0.2

Si vous avez installé le dernier VS 2012, il y a de fortes chances que vous disposiez déjà de la version 4.0.2. Vérifiez d'abord.

  1. Ensuite, vous devez avoir une instance de LocalDb . Par défaut vous avez une instance dont le nom est un seul v caractère suivi du numéro de version de la version LocalDB au format xx.x. Par exemple, v11.0 représente SQL Server 2012. Les instances automatiques sont publiques par défaut. Vous pouvez également avoir des instances nommées qui sont privées. Les instances nommées fournissent une isolation par rapport aux autres instances et peuvent améliorer les performances en réduisant les conflits de ressources avec les autres utilisateurs de la base de données. Vous pouvez vérifier l'état des instances à l'aide de SqlLocalDb.exe utilitaire (exécutez-le à partir de la ligne de commande).

  2. Ensuite, votre chaîne de connexion devrait ressembler à :

    "Server=(localdb)\v11.0;Sécurité intégrée=true ;"ou

    "Source de données=(localdb)\test;Sécurité intégrée=true ;"

à partir de votre code . Ils sont tous les deux identiques. Remarquez les deux \\ requis car \v et \t signifie caractères spéciaux. Notez également que ce qui apparaît après (localdb)\\ est le nom de votre instance LocalDb. v11.0 est l'instance publique par défaut, test est quelque chose que j'ai créé manuellement qui est privé.

  1. Si vous avez déjà une base de données (fichier .mdf) :

     "Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
    
  2. Si vous n'avez pas de base de données SQL Server :

     "Server=(localdb)\\v11.0;Integrated Security=true;"
    

Et vous pouvez créer votre propre base de données par programmation :

a) pour l'enregistrer à l'emplacement par défaut avec les paramètres par défaut :

var query = "CREATE DATABASE myDbName;";

b) Pour l'enregistrer dans un emplacement spécifique avec vos propres paramètres personnalisés :

// your db name
string dbName = "myDbName";

// path to your db files:
// ensure that the directory exists and you have read write permission.
string[] files = { Path.Combine(Application.StartupPath, dbName + ".mdf"), 
                   Path.Combine(Application.StartupPath, dbName + ".ldf") };

// db creation query:
// note that the data file and log file have different logical names
var query = "CREATE DATABASE " + dbName +
    " ON PRIMARY" +
    " (NAME = " + dbName + "_data," +
    " FILENAME = '" + files[0] + "'," +
    " SIZE = 3MB," +
    " MAXSIZE = 10MB," +
    " FILEGROWTH = 10%)" +

    " LOG ON" +
    " (NAME = " + dbName + "_log," +
    " FILENAME = '" + files[1] + "'," +
    " SIZE = 1MB," +
    " MAXSIZE = 5MB," +
    " FILEGROWTH = 10%)" +
    ";";

Et exécutez !

Un exemple de table peut être chargé dans la base de données avec quelque chose comme :

 @"CREATE TABLE supportContacts 
    (
        id int identity primary key, 
        type varchar(20), 
        details varchar(30)
    );
   INSERT INTO supportContacts
   (type, details)
   VALUES
   ('Email', '[email protected]'),
   ('Twitter', '@sqlfiddle');";

Notez que SqlLocalDb.exe l'utilitaire ne vous donne pas accès aux bases de données, vous avez séparément besoin de sqlcmd utilitaire qui est triste..