sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es la cadena de conexión para localdb para la versión 11?

  1. Requiere .NET Framework 4 actualizado a al menos 4.0.2. Si tiene 4.0.2, entonces debería tener

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319\SKUs.NETFramework,Versión=v4.0.2

Si ha instalado el último VS 2012, es probable que ya tenga 4.0.2. Simplemente verifique primero.

  1. A continuación, debe tener una instancia de LocalDb . De forma predeterminada, tiene una instancia cuyo nombre es un solo v seguido del número de versión de lanzamiento de LocalDB en el formato xx.x. Por ejemplo, v11.0 representa SQL Server 2012. Las instancias automáticas son públicas de forma predeterminada. También puede tener instancias con nombre que sean privadas. Las instancias con nombre brindan aislamiento de otras instancias y pueden mejorar el rendimiento al reducir la contención de recursos con otros usuarios de la base de datos. Puede verificar el estado de las instancias usando SqlLocalDb.exe utilidad (ejecútela desde la línea de comandos).

  2. A continuación, su cadena de conexión debería verse así:

    "Servidor=(localdb)\v11.0;Seguridad integrada=true;"o

    "Fuente de datos=(localdb)\test;Seguridad integrada=true;"

de su código . Ambos son iguales. Observe los dos \\ requerido porque \v y \t significa caracteres especiales. También tenga en cuenta que lo que aparece después de (localdb)\\ es el nombre de su instancia de LocalDb. v11.0 es la instancia pública predeterminada, test es algo que he creado manualmente que es privado.

  1. Si ya tiene una base de datos (archivo .mdf):

     "Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
    
  2. Si no tiene una base de datos de Sql Server:

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

Y puede crear su propia base de datos mediante programación:

a) para guardarlo en la ubicación predeterminada con la configuración predeterminada:

var query = "CREATE DATABASE myDbName;";

b) Para guardarlo en una ubicación específica con su propia configuración personalizada:

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

¡Y ejecutar!

Se puede cargar una tabla de muestra en la base de datos con 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');";

Tenga en cuenta que SqlLocalDb.exe la utilidad no le da acceso a las bases de datos, necesita por separado sqlcmd utilidad que es triste..