Angesichts der vorhandenen Definition für die LocalDB von SQL Server 2012 als
SqlLocalDB ist eine lokale Datenbank-Engine mit geringem Overhead von SQL Server 2012 (und zukünftigen Versionen), mit der sich Entwickler eher auf die Entwicklung als auf die Instanzkonfiguration oder -sicherheit konzentrieren können.
Ich war gespannt, wie der Weg von der Entwicklung in LocalDB zu einer Produktionsinstanz aussehen würde, insbesondere angesichts der Probleme mit Benutzerinstanzen (ca. SQL 2005), und der Versuch, eine davon in die Produktion zu befördern, und Entwickler würden den Überblick über welche Instanz verlieren Sie versuchten tatsächlich zu fördern. Eine schnelle Suche in StackOverflow verrät solche Probleme in verschiedenen Formen. Verbessert / rationalisiert LocalDB die Bereitstellung unter solchen Umständen?
quelle
Antworten:
...
Nicht wirklich so viel Unterschied, um ehrlich zu sein. Obwohl dies
User Instances
kein Faktor mehr ist, ist es für einen Entwickler immer noch sehr einfach, eine Reihe von SqlLocalDb-Instanzen zu erstellen und den Überblick zu verlieren, welche die "wahre" Version der Wahrheit enthält.LocalDb macht das Einrichten einer vollständigen dienstbasierten Instanz von SQL Server (Express oder auf andere Weise) überflüssig und reduziert die Komplexität des Sicherheitsmodells. Es ist immer noch Sache des Entwicklers oder des Teams, solide Entwicklungspraktiken in Bezug auf Quellcodeverwaltung und Werbung zu implementieren. Wie in den Kommentaren zum Ausdruck gebracht, gibt es verschiedene Möglichkeiten, Code von einer lokalen Instanz in die Produktion zu befördern (hoffentlich zuerst durch eine Art QS / Test-System):
(Ich habe absichtlich auf das Trennen / Anhängen verzichtet, da das Sichern / Wiederherstellen viel sicherer ist. Wenn beim Trennen während oder nach dem Trennen etwas mit der MDF-Datei passiert, haben Sie jetzt keine Kopien Ihrer Datenbank. Wenn eine Sicherung fehlschlägt, haben Sie immer noch Fehler habe die Quelle.)
Ob eines davon mehr oder weniger anfällig für die gleichen Probleme wie heute ist, hängt mehr von der Teamdisziplin und den etablierten Verfahren ab als davon, ob Express oder LocalDb für die lokale Entwicklung verwendet werden. MEINER BESCHEIDENEN MEINUNG NACH.
Das Schöne an LocalDb gegenüber Benutzerinstanzen ist, dass Sie beim Herstellen einer Verbindung zu einer einzelnen Instanz von LocalDb nicht in dem speziellen Fall landen, in dem Sie bei jeder Verwendung
AttachDbFileName
eine neue Kopie der Datenbank erhalten. Der problematischste Teil besteht darin, dass Sie eine Tabelle in einer Instanz ändern und dann einen Fehler von Ihrer Anwendung erhalten, da diese mit einer Kopie verbunden ist, bei der Ihre Tabelle nicht geändert wurde. Wie Sie bereits betont haben, hat dies zu einem nie endenden Strom von Verwirrung und ähnlichen Fragen zu SO geführt. Tatsächlich unterstützt SqlLocalDb immer nochAttachDbFileName
, aber ich denke, es wird sehr selten verwendet, wenn überhaupt.Mit LocalDb ist es weniger wahrscheinlich, dass Sie auf diese Probleme stoßen , aber sie existieren immer noch. Es ist ein anderes Tool mit einigen Vorteilen, aber es kann immer noch unangemessen verwendet werden.
quelle