Journal von Datensatzänderungen

Frage: Protokolliert der SQL Server bei der Änderung eines Datensatzes automatisch den Benutzer und die Uhrzeit der Änderung? Lösung: Nein. Eine Protokollierung wird nicht automatisch angeboten. Diese Informationen können aber innerhalb der Tabelle in eigens dafür angelegten Spalten gespeichert und mit einem Trigger aktualisiert werden. Hier ein Beispiel für einen solchen Trigger: Update tabelle Set … Weiterlesen

Views mit Sortierung

Frage: Innerhalb einer View sollen die Daten sortiert werden. Lösung: Im SQL Server 7.0 ist eine Sortierung innerhalb einer View nicht möglich. Um die Daten zu sortieren, muss eine Stored Procedure genutzt werden. /* übernommen aus der Original sqlfaq.de */

Aktualisierungs- und Löschweitergabe

Frage: Unter Access kann eine Aktualisierungs- und Löschweitergabe von der Primarykey-Tabelle zur Foreignkey-Tabelle aktiviert werden. Wo können diese Einstellungen im SQL-Server gemacht werden? Lösung: Der SQL-Server 7.0 arbeitet nicht mit einer Aktualisierungs- und Löschweitergabe. Es kann zwar für jede Beziehung die DRI (Differentielle refrentielle Integrität) aktiviert werden, aber diese bringt bei einem Aktualisierungs- bzw. Löschversuch … Weiterlesen

Spaltennamen umbenennen

Frage: Der Spaltenname einer Tabelle soll umbenannt werden. Lösung: Spaltennamen können entweder über den Enterprise Manager in der Entwurfsansicht der Tabelle oder mittels der Procedure sp_rename tabelle.alterspaltenname, tabelle.neuerspaltenname, ‚column‘ umbenannt werden. /* übernommen aus der Original sqlfaq.de */

Tabelle löschen und IDENTITY-Wert auf 0

Frage: Nachdem alle Datensätze einer Tabelle gelöscht wurden, soll der IDENTITY-Wert wieder auf 0 zurückgesetzt werden. Lösung: Mittels dbcc checkident(tabellenname, reseed, 0) kann der IDENTITY-Wert wieder neu gesetzt werden. Der dritten Parameter (hier: 0) bestimmt dabei den neuen Anfangswert. Eine Alternative dazu ist die Anweisung truncate table tabellenname. Dabei wird die Tabelle gelöscht und der … Weiterlesen

Debuggen einer Stored Procedure

Frage: Gibt es für Stored Procedures einen Debugger? Lösung: Im SQL Server 7.0 kann mittels der Systemprocedure sp_sdidebug der Debug-Mode ein- bzw. ausgeschaltet werden. Die Procedure ist leider nicht dokumentiert. Seit dem SQL Server 2000 gibt es einen Debugger, der im Query Analyzer über das Kontextmenü der jeweiligen Stored Procedure aufgerufen werden kann. Diese sind … Weiterlesen

Eindeutigkeit der Objektnamen

Frage: Im Enterprise Manager sind zwei Objekte mit dem gleichen Namen zu sehen. Wie kann der SQL Server diese Tabellen auseinanderhalten? Lösung: Die komplette Bezeichnung eines Objekts besteht aus dem Datenbanknamen, dem Besitzer des Objekts und dem Objektnamen. Der vollständige Name einer Tabelle mit der Bezeichnung „Artikel“ lautet also testdatenbank.dbo.Artikel. Sind nun mehrere Objekte mit … Weiterlesen

Datenbank mit Daten skripten

Frage: Von der Struktur und den Daten einer Datenbank soll ein SQL-Skript erzeugt werden. Lösung: Microsoft stellt den Database Publishing Wizard zur Verfügung, mit dem SQL-Statements für Struktur und Daten von SQL Server 2000- und SQL Server 2005-Datenbanken in einer Skript-Datei gespeichert werden. Weitere kostenpflichte und freie Tools gibt es auf Tibor Karaszi’s SQL Server … Weiterlesen

Wartungsplan sichert Transaktionsprotokoll nicht

Frage: Mit dem Wartungsplan wurden Transaktionsprotokollsicherungen für verschiedene Datenbanken konfiguriert. Die Transaktionsprotokollsicherung werden aber für einige der Datenbanken nicht ausgeführt, sondern fehlerhaft beendet. Lösung: Eigenständige Sicherungen des Transaktionsprotokolls sind nur möglich, wenn das Wiederherstellungsmodell der Datenbank auf Massenprotokolliert (Bulk-logged) oder vollständig (full) steht. Beim Wiederherstellungsmodel einfach (simple) kann nur eine Vollsicherung der Datenbank ausgeführt werden. … Weiterlesen

Transaktionsprotokoll wächst und wächst

Frage: Das Transaktionprotokoll wird immer größer und der freie Plattenplatz immer geringer. Lösung: Es gibt verschiedene Vorgehensweisen, die wiederum abhängig vom Wiederherstellungsmodell sind: 1. Wiederherstellungsmodell steht auf einfach (simple). Die im Log vorgehaltenen Informationen sind für eine Wiederherstellung nicht mehr relevant. Eine Sicherung ist nicht möglich. Es kann mit DBCC SHRINKFILE (Name des Logfiles, Minimalgröße … Weiterlesen