[Tutorial] - Einführung in SQL-Server 2014 Express

Zuletzt aktualisiert am 25. Dezember 2023 von Lars

Dieser Artikel ist eigentlich mehr eine Mitschrift einer Laborübung zu SQL Server 2014, daher sind die Abschnitte auch nicht immer ganz logisch aufgebaut. Die Ausgangslage war, dass ich etwas SQL Server 2014 kennen lernen wollte. Neben der Installation wollte ich eine Datenbank erstellen, Felder editieren, Backup erstellen und die Datenbank in Access ansprechen. Wenn neues aufgetaucht ist, hab ich das an den jeweiligen Stellen geklärt.

Editionen von SQL-Server 2014

Alle Editionen des SQL-Servers 2014 gibt es als 32 oder 64 Bit Versionen

Enterprise

"Das Premium-Angebot, SQL Server 2014 Enterprise Edition, übermittelt umfassende hochwertige Datencenterfunktionen mit blitzschneller Performance, unbegrenzter Virtualisierung und End-to-End Business Intelligence – und bietet so hohe Servicelevel für unternehmenswichtige Arbeitslasten und Endbenutzerzugriff auf Dateneinblicke."1

Business Intelligence

"SQL Server 2014 Business Intelligence-Edition bietet eine umfassende Plattform, die Organisationen die Erstellung und Bereitstellung von sicheren, skalierbaren und überschaubaren BI-Lösungen ermöglicht. Bietet neuartige Funktionen wie Browser-basiertes Durchsuchen und Visualisieren von Daten, leistungsstarke Datenkombinationsfunktionen und verbesserte Integrationsverwaltung."1

Standard

"SQL Server 2014 Standard Edition stellt eine grundlegende Datenverwaltungs- und Business Intelligence-Datenbank bereit, auf der Abteilungen und kleinere Unternehmen ihre Anwendungen ausführen. Diese unterstützt allgemeine Entwicklungstools für lokale und Cloudverwendung und ermöglicht eine effektive Datenbankverwaltung mit minimalen IT-Ressourcen."1

Web

"Die SQL Server 2014 Web Edition ist eine mit geringen Anschaffungs- und Betriebskosten verbundene Option für Webhoster und Web-VAPs, die kostengünstige Skalierbarkeit und Verwaltungsfunktionen für Webpräsenzen jeder Größe bietet."1

Developer

"SQL Server 2014 Developer Edition ermöglicht Entwicklern das Erstellen beliebiger Anwendungen auf der Basis von SQL Server. Sämtliche Funktionen der Enterprise Edition stehen zur Verfügung. Die Lizenz bezieht sich jedoch auf die Verwendung als Entwicklungs- und Testsystem und nicht als Produktionsserver. SQL Server Developer ist eine ideale Option zum Erstellen und Testen von Anwendungen."1

Express

"SQL Server 2014 Express Edition ist eine kostenlose Edition auf Einstiegsebene und eignet sich ideal zum Üben und zum Erstellen von datengesteuerten Anwendungen für Desktopcomputer und kleine Server. Dies ist die beste Wahl für unabhängige Softwareanbieter, Entwickler und Tüftler, die Clientanwendungen erstellen. Wenn Sie erweiterte Datenbankfunktionen benötigen, können Sie SQL Server Express nahtlos auf höhere Endversionen von SQL Server aktualisieren. SQL Server Express"1

Im Gegensatz zu früher dürfte SQL Express nun noch viel häufiger eingesetzt werden, denn jetzt ist auch in dieser Edtion das "SQL Server 2014 Management Studio" mit dabei, ein grafisches Tool zur Bearbeitung der Datenbanken. Wenn Sie SQL Server 2014 Management Studio brauchen, achten Sie bitte darauf, dass Sie die Version "mit Tools" auswählen.

1Editionsinfo von Editionen und Komponenten von SQL Server 2014.

Installationsvorrausetzungen SQL Server 2014

SQL Server 2014 benötigt .NET Framework 2014.

RAM

Minimum

  • Express-Editionen: 512 MB
  • Alle anderen Editionen: 1 GB

Empfohlen

  • Express-Editionen: 1 GB
  • Alle anderen Editionen: 4 GB und je nach Datenbankgrösse höher

Prozessor

Minimum

  • x86-Prozessor: 1,0 GHz
  • x64-Prozessor: 1,4 GHz

Empfohlen

  • 2,0 GHz oder schneller

Installation am Beispiel der Express Edition

Zunächst habe ich irgendwo eine falsche ISO erwischt. Die richtige sollte es unter
Ressourcen für Microsoft SQL Server 2014 Express geben.

Hier die Variante "mit Tools" auswählen und "SQLEXPRWT_x64_ENU" starten. Bei dieser Version ist das Microsoft SQL Server Management Studio mit dabei.

Eine neue SQL-Installation mit "New SQL Server stand-alone installation or add features on an existing installation" starten.

Einführung in SQL 2014 Express

License Terms bestätigen

Einführung in SQL 2014 Express

Update-Funktionen wie gewünscht festlegen.

Einführung in SQL 2014 Express

Ich installiere hier alle Features.

Einführung in SQL 2014 Express

Und nicht wie ich Microsoft .NET Framework 3.5 vergessen.

Einführung in SQL 2014 Express

Falls doch, kann dies unter Windows Server 2012 (R2) als Server Feature nachinstalliert werden.

Einführung in SQL 2014 Express

Wenn alle Installationvorraussetzungen erfüllt sind, sollte die Installation korrekt durchlaufen.

Erste Schritte im Microsoft SQL Server Management Studio

Starten Sie das "Microsoft SQL Server Management Studio", zum Beispiel indem Sie auf dem Start-Menü "Management" eingeben.

Einführung in SQL 2014 ExpressUm eine neue Datenbank anzulegen, klicken Sie mit der rechten Maustaste auf "Database" und wählen Sie "New Database" aus.

Einführung in SQL 2014 Express

Um eine neue Tabelle anzulegen, browsen Sie zu Ihrer Datenbank und Tables und klicken Sie dort mit rechter Maustaste und wählen "Table".

Einführung in SQL 2014 Express

Datentypen in MSSQL

Einführung in SQL 2014 Express

Binärdaten fester Länge mit einer Länge von n Bytes, wobei n ein Wert zwischen 1 und 8.000 ist. Die Speichergröße beträgt n Bytes.MAX gibt an, dass die maximale Speichergröße 2^31-1 Byte (2 GB) beträgtmax gibt an, dass die maximale Speichergröße 2^31-1 Byte beträgt. Die Speicherplatzgröße ist die tatsächliche Länge der eingegebenen Daten + 2 Byte.max gibt an, dass die maximale Speichergröße 2^31-1 Byte (2 GB) beträgt. Die Speicherplatzgröße ist die tatsächliche Länge der eingegebenen Daten + 2 Byte.

DatentypBereich
bigint-2^63 (-9.223.372.036.854.775.808) bis 2^63-1 (9.223.372.036.854.775.807)
binary(n)
bitEin ganzzahliger Datentyp, der den Wert 1, 0 oder NULL annehmen kann.
char(n)Nicht-Unicode-Zeichenfolgendaten mit fester Länge. n definiert die Zeichenfolgenlänge und muss ein Wert von 1 bis 8.000 sein. Die Speichergröße beträgt n Bytes.
dateDatum
datetimeDatum und Zeit
datetime2(7)Definiert ein Datum, das mit einer Uhrzeit kombiniert ist und auf dem 24-Stunden-Format basiert.
datetimeoffset(7)Definiert ein auf dem 24-Stunden-Format basierendes Datum, das mit einer Uhrzeit kombiniert ist, bei der die Zeitzone beachtet wird.
decimal(p,s)Numerische Datentypen mit fester Genauigkeit und fester Anzahl von Dezimalstellen. p -> Dezimalstellen, s -> Dezimalstellen hinter dem Komma => numeric
float (n)Ungefähre Zahlendatentypen für numerische Gleitkommadaten.
geographyDer Räumlichkeitsdatentyp geography wird als .NET-CLR (Common Language Runtime)-Datentyp in SQL Server implementiert. Dieser Typ stellt Daten in einem Erdkugel-Koordinatensystem dar.
geometryDer Räumlichkeitsdatentyp geometry wird als .NET-CLR (Common Language Runtime)-Datentyp in SQL Server implementiert. Dieser Typ stellt Daten in einem euklidischen (flachen) Koordinatensystem dar.
hierarchyidSie können hierarchyid verwenden, um die Position in einer Hierarchie darzustellen.
imageBinärdaten variabler Länge von 0 bis 2^31-1 (2.147.483.647) Byte.
int-2^31 (-2.147.483.648) bis 2^31-1 (2.147.483.647)
moneyDatentypen zur Darstellung von Währungswerten. -922.337.203.685.477,5808 bis 922.337.203.685.477,5807
nchar(n)Unicode-Zeichenfolgendaten mit fester Länge. n definiert die Zeichenfolgenlänge und muss ein Wert von 1 bis 4.000 sein.
ntextUnicode-Daten variabler Länge mit einer maximalen Zeichenfolgenlänge von 2^30 - 1 (1.073.741.823) Bytes. Die Speichergröße in Bytes ist doppelt so groß wie die eingegebene Zeichenfolgenlänge.
numeric(p,s)Numerische Datentypen mit fester Genauigkeit und fester Anzahl von Dezimalstellen. p -> Dezimalstellen, s -> Dezimalstellen hinter dem Komma => decimal
nvarchar(n)Unicode-Zeichenfolgendaten variabler Länge. n definiert die Zeichenfolgenlänge und kann ein Wert von 1 bis 4.000 sein.
nvarchar(MAX)
realUngefähre Zahlendatentypen für numerische Gleitkommadaten.
smalldatetimeDefiniert ein Datum, das mit einer Uhrzeit kombiniert wird. Die Uhrzeit basiert auf dem 24-Stunden-Format, wobei die Sekunden immer 0 sind (:00) und es keine Sekundenbruchteile gibt.
smallint-2^15 (-32,768) bis 2^15-1 (32,767)
smallmoneyDatentypen zur Darstellung von Währungswerten. -214.748,3648 bis 214.748,3647
sql_variantEin Datentyp, der Werte verschiedener von SQL Server unterstützter Datentypen speichert.
textNicht-Unicode-Daten variabler Länge in der Codepage des Servers und mit einer maximalen Zeichenfolgenlänge von 2^31 - 1 (2.147.483.647).
time(7)Definiert eine Uhrzeit. Die Uhrzeit basiert auf einem 24-Stunden-Format und beachtet keine Zeitzonen.
tinyint0 bis 255
uniqueidentifierDer uniqueidentifier-Datentyp speichert aus 16 Bytes bestehende Binärwerte, die als GUIDs (Globally Unique Identifier) fungieren. Ein GUID ist eine eindeutige Binärzahl; kein anderer Computer auf der Welt generiert einen GUID-Wert, den es schon einmal gibt.
varbinary(n)Binärdaten mit variabler Länge. n muss ein Wert zwischen 1 und 8.000 sein.
varbinary(MAX)
varchar(n)Nicht-Unicode-Zeichenfolgendaten mit variabler Länge. n muss ein Wert zwischen 1 und 8.000 sein.
varchar(MAX)
xmlDer xml-Datentyp ermöglicht das Speichern von XML-Dokumenten und -Fragmenten in einer SQL Server-Datenbank.

Erste Schritte im Microsoft SQL Server Management Studio - Fortsetzung

Nach der Erstellung einer Tabelle muss diese gespeichert werden.

Einführung in SQL 2014 Express

Unter Umständen erscheint die Tabelle nicht im Tree links. In diesem Fall auf Tables klicken und "Refresh" wählen.Einführung in SQL 2014 Express

Um Inhalt in die Tabellen einzugeben, rechts auf die Tabelle klicken und "Edit Top 200 Rows" eingeben.

Einführung in SQL 2014 Express

Einführung in SQL 2014 Express

Backup einer Datenbank

Dem Backup der Datenbank kommt einiges an Bedeutung zu. Ich kann die Datenbankdateien nicht einfach wegkopieren, da diese von der SQL-Engine ständig in Benutzung sind. Man kann aber von der Engine aus einen Datenbank-Dump starten, den ich dann anschließend wegkopieren (auf Band sichern...) kann. Moderne (und entsprechend) teure Backupsysteme bringen aber sog. Agenten mit, die die Datenbank auch im laufenden Betrieb sichern können.

Bei SQL Express gibt es einige Einschränkungen bezüglich der Verwaltungstools. So fehlt die Automatisierungskomponente SQL Server Agent bzw. der Dienst wird zwar mit installiert, jedoch stoppt dieser nach dem Starten sofort wieder. Automatische Tasks lassen sich aber trotzdem ausführen, indem man einfach das passende SQL-Skript via Kommandozeilentool

SQLCMD.EXE

ausführt.

Ist SQL auf C: installiert, befindet sich das Kommandozeilentool unter

C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn

Für eine ältere SQL Express Version ist die Vorgehensweise unter Automatische Backups für SQL Server Express beschrieben.

Folgt man dem Beispiel, dann kann man die folgende SQL-Datei FirstDB.sql (in reinem Textformat) erstellen:

BACKUP DATABASE [FirstDB] TO DISK='C:\Backup\MeineDB_sich.bak' WITH  INIT, NAME = N'MeineDB_Sicherung'
BACKUP LOG [FirstDB] TO DISK='C:\Backup\MeineDB_Log_sich.bak' WITH INIT, NAME = N'MeineDB_Log_Sicherung'

Meine Datenbank heisst FirstDB. Grundsätzlich empfiehlt es sich, ein SQL-Skript est einmal im Management Studio zu testen. Hierzu kann man die SQL-Datei doppelklicken und Sie wird im Management Studio geöffnet. Mit "Excecute" kann man das Skript ausführen. Man erhält dann allerdings eine Fehlermeldung:

Einführung in SQL 2014 Express

Was ist das SQL-Server Recovery Model (bzw. Wiederherstellungsmodell?

Die beste Erklärung findet man im MSDN-Artikel Wiederherstellungsmodelle (SQL Server).

Das Wiederherstellungsmodell beschreibt, wie mit der Log-Datei (auch Protokolldatei) umgenannt wird. Neben der eigentlichen Datenbank-Datei hat SQL auch sog. Log-Dateien, die die jeweilig aktuellen Änderungen aufnehmen. Diese werden unterschiedliche in die eigentliche Datenbank geschrieben.

Änderungen seit der letzten Sicherung sind nicht geschützt. Bei Auftreten eines Notfalls müssen diese Änderungen erneut vorgenommen werden.Wenn das Protokoll beschädigt ist oder massenprotokollierte Vorgänge seit der letzten Protokollsicherung aufgetreten sind, müssen Änderungen seit der letzten Protokollsicherung erneut vorgenommen werden. Ansonsten gehen keine Daten verloren.

WiederherstellungsmodellBeschreibungDatenverlust
EinfachKeine Protokollsicherungen. Gibt Protokollspeicherplatz automatisch wieder frei, um die Speicherplatzanforderungen gering zu halten. Hierdurch entfällt im Wesentlichen die Notwendigkeit, den Speicherplatz für Transaktionsprotokolle zu verwalten.
VollständigErfordert Protokollsicherungen. Es gehen keine Daten aufgrund einer verlorenen oder beschädigten Datendatei verloren.
Die Wiederherstellung bis zu einem beliebigen Zeitpunkt ist möglich (z. B. vor Anwendungs- oder Benutzerfehlern).
Normalerweise nicht. Wenn das Protokollfragment beschädigt ist, müssen Änderungen seit der letzten Protokollsicherung erneut vorgenommen werden.
MassenprotokolliertErfordert Protokollsicherungen. Eine Ergänzung des vollständigen Wiederherstellungsmodells, die leistungsintensive Massenkopiervorgänge ermöglicht.
Senkt die Protokollspeicherauslastung durch den Einsatz von minimaler Protokollierung für die meisten Massenvorgänge.
Einführung in SQL 2014 Express

Schaut man sich die Eigenschaft der verwendeten Datenbank an, dann wird klar, warum die Sicherung der Log-Datei fehl schlägt, das Recovery model steht auf Simple. Es lässt sich hier jedoch auch für eine bereits erstellte Datenbank ändern und nach Änderung auf "Full" läuft das Skript fehlerfrei durch. Das Backup wird in Form von zwei .bak-Dateien erstellt.

Einführung in SQL 2014 Express

Anschliessend kann man eine DOS-Batchfile erstellen, dass das SQL-Skript aufruft. Hier sind gegenüber dem Link oben ein paar kleine Anpassungen nötig. Konkret ist der Instanz-Name anzupassen

rem Ausführen eines Full Backup der MeineDB-Datenbank
"C:Program FilesMicrosoft SQL ServerClient SDKODBC110ToolsBinnSQLCMD.EXE" -S 2012R2MEMBERSQLEXPRESS -E -i C:BackupFirstDB.sql -o C:BackupBackupLog.txt

rem Zeitstempel erzeugen
for /f "tokens=1-4 delims=. " %%i in ("%date%") do (
 set year=%date:~10,4%
 set month=%date:~4,2%
 set day=%date:~7,2%
)

for /f "tokens=1-4 delims=.:, " %%i in ("%time%") do (
 set hour=%%i
 set minute=%%j
)

rem Log-Datei mit Zeitstempel umbenennen
ren C:BackupBackupLog.txt FullBackup-%year%-%month%-%day%-%hour%-%minute%.txt

Nach dem Arufruf von SQLCMD.EXE wird lediglich noch ein etwas "CMD-Magic" betrieben, um einen Dateinamen zu erzeugen, der aus Jahr, Monat, Tag, Stunde und Minute besteht, um das Logfile unter diesem Namen auszutesten.

Anschliessend das Skript austesten und bei Erfolg noch in die Aufgabenplanung stellen. Schon sollte ein unbeaufsichtigten Backup klappen. Regelmässige Kontrolle nicht vergessen!

Restore einer Datenbank

Was mache ich jetzt, wenn ich die Datenbank wiederherstellen will?

Rechte Maustaste auf "Databases" und "Restore"

Einführung in SQL 2014 Express

Entsprechende Angaben in der folgenden Maske machen - Aufpassen, dass die richtige Backup-Datei ausgewählt wird.

Einführung in SQL 2014 Express

Zugriff von Extern auf den Servern

Versucht man nun von extern auf den Server zuzugreifen, z.B. mittels ODBC, wird man erst einmal scheitern. Per Standard ist der externe Zugriff deaktiviert. Um dies zu ändern, braucht es den "SQL Server Configuration Manager".

Zumindest bei mir unter Windows Server 2012 suchte ich den jedoch erst einmal vergeblich. Est nach einigem Googlen kam ich drauf:

  • Start
  • "mmc"
  • File
  • Add/Remove Snap-ins
  • "SQL Server Configuration Manager"
  • Add
  • OK
  • Browsen zu SQL Server Network Configuration
  • Protocols for SQLEXPRESS (Instanzname, kann anders lauten)
  • Rechtsklick auf TCP/IP
  • Enable
Einführung in SQL 2014 Express

Nun kann man zum Beispiel von einem Client aus eine ODBC-Verknüpfung anlegen:

ODBC Data Source Administrator durch Eingabe von "ODBC" auf dem Starbildschirm öffnen

"System DNS" wählen und mit "Add" passenden Treiber (SQL Server) wählen.

Einführung in SQL 2014 Express

In der nächsten Maske Name und Server wählen. Der richtige Server sollte sich durch Klicken auf die Dropdown-Taste rechts auswählen lassen.

Einführung in SQL 2014 Express

Wenn Sie entsprechend der o. g. Weise vorgegangen sind, kann die nächste Maske einfach bestätigt werden.

Einführung in SQL 2014 Express

Hier die gewünschte Standarddatenbank auswählen

Einführung in SQL 2014 Express

Hier wieder bestätigen

Einführung in SQL 2014 Express

Am Schluss haben Sie die Möglichkeit mittels "Test Data Source" die Verbindung zu testen. Dies sollten Sie unbedingt tun. Mögliche Fehlerursachen:

  • TCP/IP nicht aktiviert
  • Firewall nicht geöffnet für Standardport 1433
Einführung in SQL 2014 Express

Jetzt kann man die ODBC-Verbindung verwenden. In Access passiert das z.B. über die entsprechende Funktion im Reiter "External Data"

Einführung in SQL 2014 Express

Was ist eigentlich eine Instanz

Im Artikel wurde bereits von Instanzen gesprochen. Aber was ist eigentlich eine MS SQL Instanz?

Eine Installation eines MS SQL Servers wird als Instanz bezeichnet. Auf einem Rechner können mehrere Instanzen installiert werden. Diese Instanzen können über angesprochen werden. Beispiel:

2012R2MEMBER\SQLEXPRESS

Jede Instanz nutzt eigene Dienste. Benannte Instanzen verwenden jeweils folgende Dienste: MSSQL$Instanzname und SQLAGENT$Instanzname.

Weitere Quellen

Du willst meine Arbeit unterstützen? Dann freue ich mich über eine kleine Spende!

Schreibe einen Kommentar