Ich bin auf der Suche nach einem Skript, das ich auf meinem Server ausführen kann, um Ansichten für alle meine Tabellen in meiner Datenbank ohne Sperren zu erstellen. Vielen Dank!T-SQL Erstellen Sie eine Ansicht ohne Sperre für alle Tabellen in einer Datenbank
Antwort
Obwohl ich zustimme, dass dies eine schlechte Idee ist, kann dennoch etwas durch das Zeigen einiger Beispiele gewonnen/gelernt werden. Aber - ja - das ist möglicherweise eine wirklich schlechte Idee, aber in einer Welt könnte das Sinn machen.
Wenn dies eine einmalige Sache ist, können Sie etwas tun, das einfach die DDL für die Ansichten mit (nolock)
erstellen wird. Sie müssen nur kopieren, einfügen und ausführen. Wenn dies dynamisch generiert werden soll, muss ein bisschen mehr genutzt werden.
Noch ein Vorbehalt zu den folgenden - es verwendet select *
in der Ansicht ohne Schema verbindlich. Seien Sie bei diesen Arten von Sichten außerordentlich vorsichtig, da sie sich nicht automatisch aktualisieren, wenn sich die zugrunde liegende Tabellenstruktur ändert. Es empfiehlt sich, Spalten in Ansichten vollständig zu qualifizieren, es sei denn, Sie verfügen über andere Sicherheitsvorkehrungen.
select '
create view ' + name + 'MayBeABadIdea as select * from ' + name + ' (nolock);
go'
from sys.objects
where type = 'U'
order by name;
Danke. Ich stimme völlig zu, dass dies jedoch nicht die beste Idee ist; Ich muss in der Lage sein, meine CTI-Datenbank in Echtzeit abzufragen, ohne die Tabellen zu sperren. Leider erfordert das Gesundheitswesen einige Live-Nachschauen von Daten, aber ich möchte auch nicht meine Anrufweiterleitung und Zustellung behindern. –
- 1. SQL-Ansicht ohne Sperre
- 2. TSQL: Erstellen Sie eine Ansicht, die mehrere Datenbanken
- 3. Xamarin SQLite Datenbank erstellen für alle Tabellen
- 4. Erstellen Sie alle Indizes in einer Datenbank neu
- 5. Oracle-Tabellen in einer Ansicht
- 6. Wie sehen Sie alle Tabellen in einer HSQLDB-Datenbank?
- 7. eine Ansicht erstellen aus mehreren Tabellen
- 8. Wie Sie alle Tabellen in der Datenbank löschen, ohne die Datenbank selbst zu löschen?
- 9. Anzahl der Datensätze für alle Tabellen in MySQL-Datenbank
- 10. Erstellen Sie eine Datenbank aus einer anderen Datenbank?
- 11. Alle Tabellen aus einer Oracle-Datenbank abrufen
- 12. Erstellen von DDL/DML-Skripten für alle Tabellen/Spalten in einer Datenbank
- 13. Ansicht erstellen und in allen Tabellen ändern
- 14. TSQL-Fremdschlüssel in Sichten?
- 15. TSQL: Erstellen eines benutzerdefinierten Identitätsspalte (Revision Datenbank)
- 16. Erstellen Sie eine Ansicht für meine Liste
- 17. So erstellen Sie eine neue SQL Server (TSQL) -Datenbank jeden Tag mit Zeitstempel in ihrem Namen
- 18. mySQL-Ansicht für zwei verschiedene Tabellen?
- 19. Querabfragen mehrerer Tabellen in einer SQLite-Datenbank ohne indizierte Fremdschlüssel
- 20. Datenbank pro Anwendung VS Eine große Datenbank für alle Anwendungen
- 21. Tabelle mit Prüfsumme aller Tabellen in einer Datenbank erstellen?
- 22. TSQL - Nicht-Systemtabellen in einer SQL Server 2000-Datenbank
- 23. Tabellen Hierarchie in einer Datenbank
- 24. TSQL Constraints auf temporären Tabellen
- 25. String-Verkettung von Datenzeilen in einer TSQL-Ansicht ausführen (Pivot?)
- 26. Erstellen von Beziehungen in einer Datenbank zwischen mehreren Tabellen
- 27. Wählen Sie Indizes für alle Tabellen aus
- 28. Erstellen Sie eine Animation für alle Kinder
- 29. So kopieren Sie alle Hive-Tabelle von einer Datenbank in andere Datenbank
- 30. Erstellen Sie zwei Tabellen in SQLite3-Datenbank in Python
Können Sie erklären warum? – Mike
Set [Schlechte Angewohnheiten, um NOLOCK überall hinzuschieben] (http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/) - es ist *** NICHT EMPFOHLEN ***, dies überall zu benutzen - ganz im Gegenteil! –