Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Qual é a string de conexão para localdb para a versão 11


  1. Requer o .NET Framework 4 atualizado para pelo menos 4.0.2. Se você tem 4.0.2, então você deve ter

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

Se você instalou o VS 2012 mais recente, é provável que já tenha o 4.0.2. Basta verificar primeiro.

  1. Em seguida, você precisa ter uma instância de LocalDb . Por padrão, você tem uma instância cujo nome é um único v caractere seguido pelo número da versão de lançamento do LocalDB no formato xx.x. Por exemplo, v11.0 representa o SQL Server 2012. As instâncias automáticas são públicas por padrão. Você também pode ter instâncias nomeadas que são privadas. As instâncias nomeadas fornecem isolamento de outras instâncias e podem melhorar o desempenho reduzindo a contenção de recursos com outros usuários do banco de dados. Você pode verificar o status das instâncias usando o SqlLocalDb.exe utilitário (execute-o a partir da linha de comando).

  2. Em seguida, sua string de conexão deve se parecer com:

    "Servidor=(localdb)\v11.0;Segurança Integrada=true;"ou

    "Fonte de dados=(localdb)\test;Segurança Integrada=true;"

do seu código . Ambos são iguais. Observe os dois \\ obrigatório porque \v e \t significa caracteres especiais. Observe também que o que aparece depois de (localdb)\\ é o nome da sua instância LocalDb. v11.0 é a instância pública padrão, test é algo que eu criei manualmente que é privado.

  1. Se você já possui um banco de dados (arquivo .mdf):
     "Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
    

  2. Se você não tiver um banco de dados Sql Server:
     "Server=(localdb)\\v11.0;Integrated Security=true;"
    

E você pode criar seu próprio banco de dados programaticamente:

a) para salvá-lo no local padrão com a configuração padrão:
var query = "CREATE DATABASE myDbName;";

b) Para salvá-lo em um local específico com suas próprias configurações personalizadas:
// 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%)" +
    ";";

E execute!

Uma tabela de amostra pode ser carregada no banco de dados com algo como:
 @"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');";

Observe que SqlLocalDb.exe utilitário não lhe dá acesso a bancos de dados, você precisa separadamente de sqlcmd utilitário que é triste ..