blog.atwork.at

news and infos about microsoft, technology, cloud and more

SQL Server 2008 R2 Launch

SQL Server 2008 R2 (Codename "Kilimanjaro") wird am 21. April offiziell präsentiert: SQL Server 2008 R2 Launch. Microsoft startet die Launch Tour for SQL Server 2008 R2” gemeinsam mit der European PASS Conference (Professional Association for SQL Server). Die PASS Conference findet in Neuss, Deutschland, von 21 bis 23. April statt. Ein Termin für alle SQL-Profis! Weitere Informationen zur neuen Version finden sich SQL Server 2008 R2 Website.

Neues SQL Server 2008 R2 Developers Training Kit Update

Bald kommt sie, die finale Version SQL Server 2008 R2. Mit SQL Server 2008 sind eine Reihe von Neuerungen und Funktionen ein hergekommen. Derzeit ist noch die SQL Server 2008 R2 November CTP aktuell und hier sind auch schon die endgültigen neuen R2-Funktionen vorhanden. Im SQL Server 2008 R2 Developers Training Kit Update sind (wirklich) viele Präsentationen, Demos, Hand-On-Labs und Videos enthalten, vom Überblick der R2-Neuerungen über Neues in den Reporting Services bis hin zu StreamInsight Themen. R2 Developers Training Kit Update Wer sollte dieses Kit ansehen? Alle Developer! The SQL Server 2008 R2 Update for Developers Training Kit is ideal for developers who want to understand how to take advantage of the key improvements introduced in SQL Server 2008 and SQL Server 2008 R2 in their applications, as well as for developers who are new to SQL Server.” Hier gehts zum Überblick und Download des SQL Server 2008 R2 Developers Training Kit Update (March 2010 Update 2).

Wie bekomme ich binäre Dokumente (BLOBs) in den SQL Server?

Zu Artikel Teil Eins - Wie bekomme ich binäre Dokumente (BLOBs) aus dem SQL Server? – nun das Gegenstück: Teil Zwei - Wie kann ich Dateien IN den SQL Server bringen? Das heißt Files als BLOB (Binary Large Object) in eine Tabelle speichern – und das Ganze möglichst einfach. Diese Lösung ist ebenfalls mit T-SQL zu bewerkstelligen. Die Idee dazu ist von databasejournal.com - Storing Images and BLOB files in SQL Server Part 2 entnommen, hier das Script: (Das ganze Script gibt es hier zum Download, es läuft in SQL Server 2005 und 2008.) Das Einlesen eines Files wird wieder in einer Stored Procedure savefromfile” gemerkt. Den gewünschten Filestream liefert OPENROWSET (Zeile 11, die Hilfe informiert: …also supports bulk operations through a built-in BULK provider that enables data from a file to be read and returned as a rowset). Damit wird das File eingelesen. Das INSERT (Zeile 9) fügt einfach den Output des SELECTS (Zeile 10-11) in die Tabelle MyFiles ein. Also simpel. Screenshot der Original-Tabelle: hier. Nach dem Starten von "exec savefromfile" und Anzeigen der Tabelle  sieht das Ergebnis so aus: Das File "00006_Bild 1.jpg" wurde mit seinem Inhalt in die Tabelle MyFiles eingefügt. Fertig! Noch ein Tipp für Massen-Imports” - wenn mehrere Dateien so in die Datenbank insertiert werden sollen: Hier kann man sich sehr rasch damit behelfen, in der Kommandozeile im Bilder-Verzeichnis die Dateinamen mit dir /w > import.txt in ein Textfile zu schreiben. Das Textfile "import.txt" dann mit Notepad öffnen, und die Dateinamen per Zwischenablage in eine neue Excel-Datei kopieren. In Excel werden die SQL-Befehle für die gewünschten Files zusammengebaut, beispielsweise so: Die Bildnamen stehen in Spalte A, in Spalte B wurde – wenn z.B. die ID aus dem Dateinamen weiterverwendet werden soll – diese aus dem Dateinamen extrahiert (B1: =LINKS(A1;5) ). Die "Formel" für Zelle C1: ="INSERT INTO MyFiles (FIL_ID, FIL_FileName, FIL_Content) SELECT " & WERT(B1) & ", '" & A1 & "', BulkColumn FROM OPENROWSET(Bulk 'D:\Temp\bin\" & A1 & "', SINGLE_BLOB) AS BLOB);" Die Formel ergibt dann das korrekte T-SQL-Statement für die jeweilige Datei: INSERT INTO MyFiles (FIL_ID, FIL_FileName, FIL_Content) SELECT 6, '00006_Bild 1.jpg', BulkColumn FROM OPENROWSET(Bulk 'D:\Temp\bin\00006_Bild 1.jpg', SINGLE_BLOB) AS BLOB); Nun Zelle C1 bis ans Ende der Dateinamen ausfüllen” lassen: Und die so erzeugten SQLs per Zwischenablage im SQL Management Studio einfügen und laufen lassen. GO! Tipp: Excel als Hilfsmittel zum Erzeugen von SQL-Befehlen und zum Nachbearbeiten von Daten ist übrigens eine Methode, die ich wirklich oft verwende und als äußerst praktisch empfehlen kann. Viel schneller gehts kaum. ;-) Mit diesen Werkzeugen ist auch das Manipulieren von BLOBs in SQL Server rasch umsetzbar!

Wie bekomme ich binäre Dokumente (BLOBs) aus dem SQL Server?

Das Leben als Datenbank-Administrator steckt voller Überraschungen. Mal gehören Indizies erstellt oder neu aufgebaut, Volltextkataloge rebuildet, Datenbanken gebackupt, gewartet, restored und natürlich ist ein DB-Admin Ansprechpartner für alle weiteren auftretenden Probleme und Wünsche der IT und der Anwender. So hatte ich vor kurzem die Anforderung, in einer Datenbank gespeicherte Bilder herauszuholen”, also klassische BLOBs (Binary Large Objects) als Dateien zu speichern. In meiner Datenbank existiert eine Tabelle MyFiles” mit einer Spalte vom Typ IMAGE. Das Pendant ab SQL Server 2005 wäre der neue” Datentyp VARBINARY; in meinem Fall handelt es sich um eine konvertierte DB aus SQL 2000 in SQL 2005. In der Spalte ”FIL_Content” ist der Dateistream einer Datei enthalten, z.B. JPG-Bilder, Word- und Excel-Dokumente, PDFs, (BLOB), also ganz egal welche Files (ab SQL 2008 gibt es übrigens einen eigenen Filestream-Datentyp. ;-) Die binären Dokumente können nicht simpel mit Copy & Paste herausgeholt werden, nur die entsprechende Applikation liest und schreibt die Dateien von und in die Datenbank. Diese binären Informationen aus der Tabelle sollen als Files gespeichert werden um sie weiterzuverwenden. So sieht die vereinfachte Tabelle aus, Auszulesen ist die Spalte FIL_Content: Natürlich könnte ich eine kleine .NET Applikation dafür bauen, aber ich wollte eine möglichst rasche Lösung. Und ich habe sie auch gefunden! Ein kleines T-SQL Script im SQLTeam.com Forum von "Peso". Dieses habe ich analysiert und wie folgt angepasst. (Das ganze Script gibt es hier zum Download, es läuft in SQL Server 2005 und 2008.) Ich habe das Script als Stored Procedure save2file” angelegt. Die Funktionsweise kurz erklärt: Mit einem Cursor (Zeile 16) wird die gesamte Tabelle MyFiles” durchlaufen und die selektierten Felder in Variablen eingelesen (Zeile 21). Dann wird der Pfad aus Feld FIL_ID und Dateiname zusammengebaut und ausgegeben (Zeile 25-28). Jetzt kommt der Clou: Es wird ein ADODB-Stream als OLE-Objekt angelegt (Zeile 30) und mit den Werten befüttert (Zeile 31 bis 34). Dieser Stream wird auf die Festplatte geschrieben (Zeile 33, 34) und das OLE Objekt zerstört (Zeile 36). Und weiter mit dem nächsten Datensatz (Zeile 38). Anzupassen ist natürlich der Pfad, wohin die Dateien gespeichert werden sollen (Zeile 27). Ausgeführt wird das Script wie gewohnt mit exec save2file Voila! Wenn alles stimmt, wurden die binary Contents als Files in den gew. Pfad extrahiert: Hinweis: Diese Vorgangsweise ist sehr rasch anwendbar, aber nicht unbedingt für daily use” geeignet. Je nach Datenmenge ist das Erstellen eines OLE-Objekts nicht unbedingt günstig”. Aber für den Ab-und-zu Export verdient das Script meine Empfehlung als best practice”! Eine weitere Methode: KB258038: How To Access and Modify SQL Server BLOB Data by Using the ADO Stream Object mit dem VB Beispiel Saving the Data in a SQL Server Image Column to a File on the Hard Disk” und Transfer the Image Stored in a .gif File to an Image Column in a SQL Server Table”. In Teil Zwei geht es dann um den umgekehrten Weg – wie bekomme ich Files per T-SQL als BLOB in die Datenbank… Möge T-SQL immer so hilfreich sein! ;-) Beitrag von Toni Pohl

Die Zukunft von SQL Server…

…beginnt hier! SQL Server 2008 R2 (codename Kilimanjaro”) wird ab Mai 2010 verfügbar sein (SQL Server 2008 R2 gets an official date). An der übernächsten Version von SQL Server wird auch schon gearbeitet: Wenn man den Gerüchten Glauben schenkt - msdn blog von Dan Jones, Mitglied des SQL Server Teams und den üblichen Verdächtigen (Bloggern) -, so wird diese SQL Server Version den Codenamen Denali” tragen - und könnte als SQL Server 2011 enden? Das SQL Server Team hat eine Vorliebe für National-Park-Namen und Denali” (indianisch: ”Der Hohe”) ist mit fast 6.200 Metern der höchste Berg in Nord Amerika in Alaska und heißt offiziell Mount McKinley… Matthias Berndt (Group Program Manager Microsoft SQL Server) informiert übrigens in seinem Blog über die Zeitpläne der nächsten Releases: Microsoft SQL Server Release Services, hier die wichtigsten Termine: SQL Server 2008 SP2 wird voraussichtlich im 3. Quartal 2010 veröffentlicht. SQL Server 2005 SP4 kommt wohl im 4. Quartal 2010 und wird wahrscheinlich das letzte Service Pack für diese SQL Version sein; den erweiterten Support” dafür wird es ab April 2011 bis Dezember 2016 geben. (Allgemeine Infos zur Lebenszeit der Microsoft Produkte finden sich in support.microsoft.com/lifecycle.) Und noch etwas Lustiges zum Abschluss: Wissen Sie, wie SQL Server _schmeckt_? Und wie schmeckt Oracle im Vergleich dazu?? Dazu hat martinidesign ein wirklich köstliches Video produziert: The DB Taste Challenge Viel Spaß!