SQL Management Studio: SQL Abfrage direkt in CSV Textdatei umleiten

Problem:

Wenn eine SQL Abfrage in SQL Management Studio sehr viele Daten liefert, funktioniert das Kopieren der Ergebniszeilen über die Zwischenablage in Windows zu anderen Anwendungen/Rechnern nicht mehr.

Lösung:

In diesem Fall hilft das Exportieren der Ergebniszeilen einer SQL-Abfrage in eine Textdatei im CSV-Format. Dazu legt man vorher in den Optionen der „Query Results“ den CSV-Delimiter fest sowie kann man in der ersten Zeile die Tabellenspaltenbezeichnungen mit in die CSV-Datei ausgeben.

Zum Abfeuern der Query in eine Textdatei muss man vorher in der Symbolleiste den entsprechenden Button drücken (siehe rote Umrandung im Screenshot). Anschließend klickt man auf Execute in der Symbolleiste und ein Datei-Speichern-Dialog erscheint zum Auswahl des Speicherorts der CSV-Datei.

Einstellungen für Datei-Export von SQL Queries im SQL Management Studio

Security Hardening bei SharePoint

Security Hardening ist der englische Begriff für Sicherung/Härtung eines Systems gegen Angriffe. In einem meiner Projekte beschäftigte ich mich mit dem Thema im Bezug auf SharePoint.

SharePoint teilt sich technisch gesehen in drei Komponenten auf. Diese sind unten dargestellt mit Links zu hilfreichen Artikeln bei Technet.

Internet Information Services (IIS):

SharePoint Server:

SQL Server:

Aufruf von der SQL-Skripts auf der Kommandozeile

Im Rahmen von automatischen Deployments von Datenbanken in den MS SQL Server ist es hilfreich, wenn man SQL-Skripte per Konsole skriptgesteuert ausführen kann.

Mit dem Tool „sqlcmd“ ist es möglich, auch Skripte und SQL-Statements von der Kommandozeile auszuführen.

Hier der Aufruf in der Konsole für das Starten von SQL Skripten:
sqlcmd -S \ -i -o

Snapshot Isolation im SQL Server

Seit SQL Server 2005 existiert ein sogenanntes „Snapshot Isolation Model“, um Erleichterungen für Online-Applikationen zu schaffen, die transaktionsbasiert auf einem Datenstand (z.B. einer Datenbanktabelle) arbeiten.

Um hier die Datenkonsistenz für Lesezugriffe zu sichern, werden hier nicht einzelne Datensätze gelockt, und damit andere Transaktionen ausgebremst. Sondern jede Transaktion arbeitet während ihrer Laufzeit mit einem eigenen temporären Datenstand (z.B. eines Datensatzes), der zum Zeitpunkt des Starts der Transaktion gültig war.

Weitere Ressourcen: