Wie kann ich eine SQL Server-Systemtabelle erstellen?

8

Ich entwickle eine Website, die zuerst Entity Framework-Code mit Migrationen verwendet. Nach jeder größeren Veröffentlichung nehme ich eine Kopie der Produktionsdaten und richte sie in meiner Entwicklungsumgebung ein. Ich habe festgestellt, dass, um eine Produktionsdatenkopie mit Migrationen zu verwenden, die Tabelle __MigrationHistory aus dem alten Entwicklungsdatenbankimage in die Kopie der Produktionsdatenbank kopiert werden muss.

Das funktioniert gut, abgesehen von einem lästigen Detail: Die Tabelle _MigrationHistory wird als Benutzertabelle anstatt als Systemtabelle angezeigt. Dies ist kein ernsthaftes Problem, solange ich mich erinnere, es aus meinen Datenbank-Diffs herauszufiltern. Aber ich würde es vorziehen, wenn die neue Tabelle __MigrationHistory eine Systemtabelle ist, genau wie in einer Datenbank, die durch EF-Migrationen erstellt wurde.

Gibt es eine Möglichkeit, eine SQL Server-Tabelle so zu erstellen oder zu kopieren, dass sie als Systemtabelle erscheint?

    
Paul Keister 09.08.2013, 00:11
quelle

2 Antworten

1

Nach meinem Verständnis ist dies keine empfohlene Praxis.

Siehe TechNet-Artikel

Als mögliche Lösung schlage ich vor, ein neues Schema wie ETL oder Mig zu deklarieren und diesem Schema Sicherheitsmaßnahmen zuzuweisen, wenn Sie über solche Dinge besorgt sind. Dies würde dazu dienen, die '_MigrationHistory'-Tabelle von den übrigen Benutzertabellen zu trennen.

Bearbeiten: Ich habe das gerade in einer anderen Frage gefunden, vielleicht hilfreich, wenn Sie darauf aus sind. StackOverflow

    
drummer0512 09.08.2013, 16:55
quelle
6

Verwenden Sie den folgenden Befehl ändern Sie Ihre Tabelle zu Systemobjekt. So wird es dann in Systemobjekten angezeigt.

%Vor%     
Dilhan RK 15.01.2014 22:53
quelle