sql >> Database >  >> RDS >> Sqlserver

wat is het probleem met AttachDbFilename

User Instance gebruiken betekent dat SQL Server een speciale kopie van dat databasebestand maakt voor gebruik door uw programma. Als je twee verschillende programma's hebt die dezelfde verbindingsreeks gebruiken, krijgen ze twee totaal verschillende kopieën van de database. Dit leidt tot een lot van verwarring, omdat mensen het bijwerken van gegevens met hun programma zullen testen, vervolgens verbinding maken met een andere kopie van hun database in Management Studio en klagen dat hun update niet werkt. Dit stuurt ze door een gebrekkige reeks wilde ganzenjachtstappen om het verkeerde probleem op te lossen.

Dit artikel gaat dieper in op het gebruik van deze functie, maar let op de allereerste opmerking:de User Instance functie is beëindigd . In SQL Server 2012 zijn de voorkeursalternatieven (in deze volgorde, IMHO):

  1. Maak of koppel uw database aan een echt exemplaar van SQL Server. Uw verbindingsreeks hoeft dan alleen de instantienaam, de databasenaam en referenties op te geven. Er zal geen verwarring zijn, aangezien Management Studio, Visual Studio en uw programma('s) allemaal verbinding maken met een enkele kopie van de database.

  2. Gebruik SqlLocalDb voor lokale ontwikkeling. Ik geloof dat ik u gisteren op dit artikel heb gewezen:"Aan de slag met SQL Server 2012 Express LocalDB."

  3. Gebruik SQL Server Compact. Ik vind deze optie het minst leuk omdat de functionaliteit en syntaxis niet hetzelfde zijn - dus het zal je niet per se alle functionaliteit bieden die je uiteindelijk wilt implementeren. Compact Edition is ook verouderd, dus dat is er.

Natuurlijk, als u een versie SqlLocalDb gebruikt, is geen optie - dus u zou een echte database moeten maken en die consequent moeten gebruiken. Ik noem alleen de Compact-optie voor de volledigheid - ik denk dat dat bijna net zo'n slecht idee kan zijn als het gebruik van AttachDbFileName .

BEWERKEN: Ik heb hier over geblogd:

  • Slechte gewoonten:AttachDBFileName gebruiken


  1. UPDATE met ORDER BY

  2. MySQL- of MariaDB-database exporteren

  3. Oracle PLSQL-blokstructuur en -typen

  4. Oracle selecteren voor updategedrag