insert into Tabelle2 select * from Tabelle1 order by

Ein select into mit order by? Denkste! MS sagt, dass das nicht sicher funktioniert.

Quelle: http://technet.microsoft.com/de-de/library/ms188029.aspx

Unter „Einschränkungen“ liest man dort: „Durch Angabe einer ORDER BY-Klausel wird nicht gewährleistet, dass die Zeilen in der angegebenen Reihenfolge eingefügt werden.“ Aha!

SQL Server Datenbank zurücksichern, Benutzer-Anmeldung wiederherstellen

Welcher DB-Admin oder DB-Padawan kennt das nicht: Man hat sich ein Datenbank-Backup gezogen, möchte das in einer Testumgebung testen und die Anmeldungen funktionieren nicht. Dann versucht man die Logins unter Sicherheit -> Anmeldungen zu erstellen und bekommt promt eine Fehlermeldung:

„Microsoft SQL Server Management Studio
Fehler bei Erstellen für Benutzer ‚web‘. (Microsoft.SqlServer.Smo)
ZUSÄTZLICHE INFORMATIONEN:
Ausnahme beim Ausführen einer Transact-SQL-Anweisung oder eines Transact-SQL-Batches. (Microsoft.SqlServer.ConnectionInfo)
Der Benutzer, die Gruppe oder die Rolle ‚web‘ ist in der aktuellen Datenbank bereits vorhanden. (Microsoft SQL Server, Fehler: 15023)“

Ja ist klar, den DB-Benutzer gibt es schon. Dafür gibt es eine einfache Lösung: die Systemprozedur „sp_change_users_login“ Quelle: http://technet.microsoft.com/de-de/library/ms174378.aspx

Mit dem Parameter ‚report‘ gibt sie die User der aktuellen Datenbank aus, die keinen Login für den Datenbank-Server besitzen.

exec sp_change_users_login 'report'

Mit Parameter ‚update one‘ kann ein vorhandener DB-Benutzer einer SQL-Anmeldung zugeordnet werden. Dazu muss man den Login zuerst erstellen. Beispiel: Benutzer „web“ soll einer Anmeldung zugeordnet werden:

use <deine Datenbank>
create login web with password = 'web', check_policy = off
exec sp_change_users_login 'update_one', 'web', 'web'

Der erste Befehl ist optional und erstellt eine Anmeldung. Der zweite Befehl ordnet der SQL-Anmeldung web den DB-Benutzer web zu. Das war es schon.

Exchange 2013 nach Neustart nicht mehr erreichbar + Lösung

Ich hatte letztens ein ziemlich großes Problem mit dem Exchange-Server. Und zwar war er nach Neustart des Systems (Windows Server 2012) nicht mehr erreichbar. Es konnte sich kein User mehr mit seinem Outlook, Handy oder per OWA verbinden. Bei einer Firma mit knapp 30 Mann ein echtes Problem den ganzen Tag per Mail nicht erreichbar zu sein…

Zu diesem Zeitpunkt hatten wir aber am System nichts verändert, nur diverse Updates wurden installiert. Ich hatte schon die MS-Updates in Verdacht. Sie zu deinstallieren brachte natürlich auch nichts. Mehrmalige Neustarts halfen auch nicht (warum auch). Das ganze bereitete mir ziemliche Kopfschmerzen…

Nach stundenlanger Suche, Recherche und durch Hilfe meines netten Kollegen fiel es mir wie Schuppen von den Augen: Ich – Asche auf mein Haupt – hatte bereits vor Wochen die WSUS-Rolle deinstalliert, aber nicht neugestartet. Sofort habe ich – auf Verdacht – die WSUS-Rolle wieder installieren lassen und… Er lief wieder einwandfrei! 😀 Gott sei Dank!

Fazit: Aufpassen beim Deinstallieren irgendwelchen Rollen. Sofort nachschauen, ob noch alles (auch nach Neustart) wieder läuft.

LocalDB als SQL-Server Express Alternative

Bemerkungen:

  • ab Version 2012
  • keine aufwändige Installation
  • kein Dienst
  • für Entwickler gedacht

Installation:

  • LocalDB herunterladen
  • .msi ausführen… (stand nicht in der Anleitung, aber vorher war der Test n.i.O.)
  • Befehl auf Konsole ausführen: msiexec /i SqlLocalDB.msi /qn IACCEPTSQLLOCALDBLICENSETERMS=YES
  • Testen: SQLLocalDB info -> liefert die Versionsnummer
  • weiterer Test: SQLLocalDB i „v11.0“ -> liefert weitere Infos

Verbinden:

  • MS SQL Mangement Studio
  • als Servername: (localdb)\v11.0
  • Anmeldung: Windows-Authentifizierung
  • localdb
  • jetzt wie gewohnt arbeiten

Mega-Stau

IMG_20130819_081937Heute war es wieder ein Spaß, zur Arbeit zu fahren! Die neue Baustelle auf der A2 nervt gewaltig. Es waren ca. 20 km Stau. Ihn umfahren zu wollen, war diesmal keine gute Idee. 🙁

Kleiner Tipp: Die linke Spur benutzen! Da kommt man viel schneller durch.