Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

na czym polega problem z AttachDbFilename?

Korzystanie z User Instance oznacza, że ​​SQL Server tworzy specjalną kopię tego pliku bazy danych do użytku przez program. Jeśli masz dwa różne programy korzystające z tych samych parametrów połączenia, otrzymają dwie całkowicie różne kopie bazy danych. Prowadzi to do dużo zamieszania, ponieważ ludzie będą testować aktualizację danych za pomocą swojego programu, a następnie połączyć się z inną kopią swojej bazy danych w Management Studio i narzekać, że ich aktualizacja nie działa. To wysyła ich przez wadliwą serię kroków w pościgu za dziką gęsią, próbując rozwiązać niewłaściwy problem.

Ten artykuł zawiera więcej informacji na temat korzystania z tej funkcji, ale zwróć uwagę na pierwszą uwagę:User Instance funkcja została przestarzała . W SQL Server 2012 preferowanymi alternatywami są (w tej kolejności IMHO):

  1. Utwórz lub dołącz swoją bazę danych do rzeczywistej instancji SQL Server. Parametry połączenia będą wtedy wystarczyły, aby określić nazwę instancji, nazwę bazy danych i poświadczenia. Nie będzie pomieszania, ponieważ Management Studio, Visual Studio i Twój program (programy) będą łączyć się z pojedynczą kopią bazy danych.

  2. Użyj SqlLocalDb dla rozwoju lokalnego. Wydaje mi się, że wskazałem ci wczoraj ten artykuł:„Pierwsze kroki z SQL Server 2012 Express LocalDB”.

  3. Użyj programu SQL Server Compact. Ta opcja podoba mi się najmniej, ponieważ funkcjonalność i składnia nie są takie same - więc niekoniecznie zapewni ci całą funkcjonalność, którą ostatecznie chcesz wdrożyć. Wersja Compact Edition jest również przestarzała, więc jest.

Oczywiście, jeśli używasz wersji SqlLocalDb nie jest opcją - powinieneś więc tworzyć prawdziwą bazę danych i konsekwentnie z niej korzystać. Wspominam tylko o opcji Compact dla kompletności - myślę, że może to być prawie tak zły pomysł, jak użycie AttachDbFileName .

EDYTUJ: Pisałem o tym tutaj:

  • Złe nawyki:używanie AttachDBFileName


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodawanie tożsamości do istniejącej kolumny

  2. Kiedy powinienem używać zmiennej tabeli a tabeli tymczasowej w serwerze sql?

  3. Jak naprawić błąd „Dostawca nazwanych potoków, błąd 40 — nie można otworzyć połączenia z serwerem SQL Server”?

  4. INFORMATION_SCHEMA vs sysobjects

  5. Jak uzyskać wszystkie tabele, które mają podstawowe ograniczenie klucza utworzone w bazie danych SQL Server — SQL Server / Samouczek TSQL 57