sql >> Databáze >  >> RDS >> Sqlserver

jaký je problém s AttachDbFilename

Pomocí User Instance znamená, že SQL Server vytváří speciální kopii tohoto databázového souboru pro použití vaším programem. Pokud máte dva různé programy používající stejný připojovací řetězec, získají dvě zcela odlišné kopie databáze. To vede k hodně zmatku, protože lidé budou testovat aktualizaci dat pomocí svého programu, pak se připojí k jiné kopii své databáze v Management Studio a stěžují si, že jejich aktualizace nefunguje. To je pošle přes chybnou sérii kroků honičky divoké husy ve snaze vyřešit nesprávný problém.

Tento článek jde hlouběji do toho, jak tuto funkci používat, ale věnujte pozornost hned první poznámce:User Instance funkce byla zastaralá . V SQL Server 2012 jsou preferované alternativy (v tomto pořadí, IMHO):

  1. Vytvořte nebo připojte svou databázi ke skutečné instanci SQL Server. Váš připojovací řetězec pak bude muset zadat pouze název instance, název databáze a přihlašovací údaje. Nedojde k žádné záměně, protože Management Studio, Visual Studio a vaše programy se budou všechny připojovat k jediné kopii databáze.

  2. Použijte SqlLocalDb pro místní rozvoj. Věřím, že jsem vás včera upozornil na tento článek:„Začínáme s SQL Server 2012 Express LocalDB.“

  3. Používejte SQL Server Compact. Tato možnost se mi líbí nejméně, protože funkce a syntaxe nejsou stejné - takže vám nemusí nutně poskytnout všechny funkce, které nakonec budete chtít nasadit. Kompaktní edice je také zastaralá, takže ano.

Samozřejmě pokud používáte verzi SqlLocalDb není možnost - takže byste měli vytvářet skutečnou databázi a používat ji důsledně. Možnost Kompakt zmiňuji pouze pro úplnost – myslím, že to může být skoro stejně špatný nápad jako použití AttachDbFileName .

UPRAVIT: O tom jsem napsal blog zde:

  • Špatné návyky:Používání AttachDBFileName


  1. Proč mysqli vydává příkazy mimo synchronizaci?

  2. Jak exportovat data z SQL Server 2005 do MySQL

  3. Read Committed je nutností pro distribuované databáze SQL kompatibilní s Postgres

  4. Výkon sys.partitions