Peter-Geuer-Str. 9 53909 Zülpich
02252 835302 info@dithmer.de
Lösungen für Ihr Unternehmen

Der neue SQL Server 2016…

Der neue SQL Server 2016…

Bald ist er da: Der SQL Server 2016.

Im Vorfeld hört man viel über neue Features und Möglichkeiten und man kann ihn ja auch schon testen.

Das was mich wirklich interessiert hat, wo man sonst immer sehr viel Zeit investiert in der Entwicklung: Historisierung von Daten.

Somit liegt es ja nahe sich dieses Thema einmal genau anzusehen.
Also erstmal den SQL Server installiert. Das dazugehörige Managementstudio installiert. Den Server eingerichtet und eine Datenbank angelegt. Schon kann es also losgehen.

Herkömmlich haben wir Tabellen entweder über den Designer angelegt, oder per SQL Code:
CREATE TABLE [dbo].[Kunden_2](
[Name] [nchar](10) NULL,
[Vorname] [nchar](10) NULL,
[PLZ] [nchar](10) NULL,
[Ort] [nchar](10) NULL
) ON [PRIMARY] GO

Eine Tabelle die historisiert werden soll kann man derzeit nur per Code anlegen.

CREATE TABLE dbo.Kunden
(
Kundenid int NOT NULL PRIMARY KEY CLUSTERED
, [Name] nvarchar(100) NOT NULL
, [Position] varchar(100) NOT NULL
, [Notiz] varchar(100) NOT NULL
, [ValidFrom] datetime2 (2) GENERATED ALWAYS AS ROW START
, [ValidTo] datetime2 (2) GENERATED ALWAYS AS ROW END
, PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo)
)
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.KundenHistory));
Was sind nun die Unterschiede?
Die Keyfakts sind: Es werden die Spalten ValidFrom , ValidTo benötigt, sowie die Extension SYSTEM_Versioning = on und den Namen der Historientabelle.

Das ist schon alles.

sqlserver2016_1

Erstellt wird eine neue Tabelle:

sqlserver2016_2

Der Unterschied ist direkt sichtbar: Anhand des Icons vor dem Tabellenname, sowie die Erweiterung hinter dem Tabellenname.

Tragen wir erstmal ein paar Daten ein:

sqlserver2016_3

Und machen direkt ein paar Änderungen:

sqlserver2016_4

Und fragen uns: Wie kann ich nun die Änderungen sehen??????
Sehr einfach: Klappen Sie einfach mal die Tabellendetails auf:

sqlserver2016_5

Direkt fällt einem das Objekt dbo.Kundenhistory (History) ins Auge.
Wenn man sich hier nun die Daten wiedergeben läßt, erkennt man schon wie das System arbeitet:

sqlserver2016_6

Man kann anhand des ValidFrom / ValidTo feststellen, von wann bis wann dieser Datensatz gültig war.

Somit kann man sich im Grunde die Aufwendige Programmierung sparen, um Datenänderungen nachvollziehbar zu machen.

Allerdings eines gillt hier wie immer: Mehr geht immer, nach oben ist noch Luft.

Sprich: Was fehlt ist die Historisierung WER die Änderungen gemacht hat. Sicherlich ein Aspekt der Datensicherheitstechnisch hinterfragt werden kann, aber manchmal doch nicht unwichtig. Und das Leistet diese Funktion halt nicht. Noch nicht.

Kommentare sind deaktiviert.