Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Qual è la stringa di connessione per localdb per la versione 11

  1. Richiede .NET Framework 4 aggiornato almeno a 4.0.2. Se hai 4.0.2, dovresti averlo

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

Se hai installato l'ultimo VS 2012 è probabile che tu abbia già 4.0.2. Verifica prima.

  1. Quindi devi avere un'istanza di LocalDb . Per impostazione predefinita hai un'istanza il cui nome è un singolo v carattere seguito dal numero di versione della versione di LocalDB nel formato xx.x. Ad esempio, v11.0 rappresenta SQL Server 2012. Le istanze automatiche sono pubbliche per impostazione predefinita. Puoi anche avere istanze denominate che sono private. Le istanze denominate forniscono isolamento da altre istanze e possono migliorare le prestazioni riducendo la contesa di risorse con altri utenti del database. Puoi controllare lo stato delle istanze usando SqlLocalDb.exe utility (eseguilo dalla riga di comando).

  2. Successivamente la stringa di connessione dovrebbe essere simile a:

    "Server=(localdb)\v11.0;Sicurezza integrata=true;"o

    "Origine dati=(localdb)\test;Sicurezza integrata=true;"

dal tuo codice . Sono entrambi uguali. Nota i due \\ richiesto perché \v e \t significa caratteri speciali. Nota anche ciò che appare dopo (localdb)\\ è il nome della tua istanza LocalDb. v11.0 è l'istanza pubblica predefinita, test è qualcosa che ho creato manualmente che è privato.

  1. Se hai già un database (file .mdf):

     "Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
    
  2. Se non hai un database SQL Server:

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

E puoi creare il tuo database a livello di codice:

a) per salvarlo nella posizione predefinita con l'impostazione predefinita:

var query = "CREATE DATABASE myDbName;";

b) Per salvarlo in una posizione specifica con le tue impostazioni personalizzate:

// 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%)" +
    ";";

Ed esegui!

Una tabella di esempio può essere caricata nel database con qualcosa come:

 @"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');";

Nota che SqlLocalDb.exe l'utilità non ti dà accesso ai database, hai bisogno separatamente di sqlcmd utilità che è triste..