Overblog
Folge diesem Blog Administration + Create my blog
Blog von Olaf Helper
Neueste Posts

Dokumentations-Sets zum Thema MS Sql Server

23. Dezember 2009 , Geschrieben von Olaf Helper Veröffentlicht in #Download MSSQL

Microsoft hat umfangreiche Sets aus Whitepaper, Präsentation und Demonstrationen zu 4 Themen rund um den MS Sql Server veröffentlicht.

 

SQL Server Migration QuickStart (300,5 MB)

SQL Server Consolidation QuickStart (195,3 MB)

SQL Server Upgrade QuickStart (284,9 MB)

Data Warehousing QuickStart (155,6 MB)

Weiterlesen

Von DataSet zu Coma Separated List und dann wieder zurück

18. Dezember 2009 , Geschrieben von Olaf Helper Veröffentlicht in #T-SQL

Es ist eine häufige Anforderung, Werte von mehreren Datensätze aus einem MS Sql Server per T-SQL als eine Coma Separated List (csv) auszugeben, z.B. im Reporting.

Analog dazu gibt es die Anforderung zum Umkehrschluß: Man hat einen csv-String und möchte das als RecordSet erhalt, um z.B. als Referenz darauf zu JOINen.

Wie geht’s? Mit ein paar kleinen Tricks recht einfach.

Zunächst DataSet => csv

Hier gibt es wie immer mehrere Varianten, ich zeige 2. Die eine kumuliert die Wert über eine Variable und gibt die dann aus, die andere verwendet die XML Funktion (ab Version 2005) und ersetzt für das Ergebnis die Tags.

 

 SET NOCOUNT ON; 
 -- Werte anlegen 
 CREATE TABLE #csv 
  (value varchar(3)); 
 INSERT INTO #csv VALUES ('Jan'); 
 INSERT INTO #csv VALUES ('Feb'); 
 INSERT INTO #csv VALUES ('Mar'); 
 INSERT INTO #csv VALUES ('Apr'); 
 INSERT INTO #csv VALUES ('May'); 
 INSERT INTO #csv VALUES ('Jun'); 
 INSERT INTO #csv VALUES ('Jul'); 
 INSERT INTO #csv VALUES ('Aug'); 
 INSERT INTO #csv VALUES ('Sep'); 
 INSERT INTO #csv VALUES ('Oct'); 
 INSERT INTO #csv VALUES ('Nov'); 
 INSERT INTO #csv VALUES ('Dec'); 
 GO 
   
 -- Weg über eine Variable 
 DECLARE @csv varchar(200) = ''; 
 SELECT @csv = @csv + value + ';' 
 FROM #csv 
 -- Liste ausgeben 
 SELECT @csv AS csv; 
   
 -- Über XML; da muss zwischendurch konvertiert und Tags entfernt werden 
 DECLARE @sep char(1); 
 SET @sep = ';'; 
 SELECT REPLACE(REPLACE(StrTbl.StrValue, '<tag>', ''), '</tag>', '') AS csv 
 FROM  
  (SELECT StrValue = 
  CONVERT(varchar(400), 
  (SELECT tag = Value + @sep 
  FROM #csv 
  FOR XML PATH ('tag'), Type 
  ) 
  ) 
  ) AS StrTbl 
   
 GO -- Aufräumen 
 DROP TABLE #csv; 

 

Ergebnis:

 

 csv 
 ----------------------------------------------- 
 Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec; 
   
 csv 
 ----------------------------------------------- 
 Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec; 

 

 

So, und nun wieder zurück. Es gibt einen csv String und der soll nun wieder aufgesplittet. Auch nicht wirklich aufwendig, wenn man es über eine CTE (Common Table Expression) erledigt:

 

 DECLARE @csv varchar(200); 
 DECLARE @sep char(1); 
   
 -- Voraussetzung: Abschließender Separator 
 SET @csv = 'Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec;'; 
 SET @sep = ';'; 
   
 WITH cte (Id, Value, Rest) 
 AS (SELECT 1 as Id 
  ,SUBSTRING(@csv, 1, CHARINDEX(@sep, @csv, 1) - 1) AS Value 
  ,SUBSTRING(@csv, CHARINDEX(@sep, @csv, 1) + 1, LEN(@csv)) AS Value 
  UNION ALL 
  SELECT Id + 1 AS Id 
  ,SUBSTRING(Rest, 1, CHARINDEX(@sep, Rest, 1) - 1) AS Value 
  ,SUBSTRING(Rest, CHARINDEX(@sep, Rest, 1) + 1, LEN(Rest)) AS Value 
  FROM cte 
  WHERE CHARINDEX(@sep, Rest, 1) <> 0) 
 SELECT Id, Value 
 FROM cte;  

 

Ergebnis:

 

 Id Value 
 ----------- ------ 
 1 Jan 
 2 Feb 
 3  Mar 
 4 Apr 
 5 May 
 6 Jun 
 7 Jul 
 8 Aug 
 9 Sep 
 10 Oct 
 11 Nov 
 12 Dec 
Weiterlesen

"Visual Basic 2008 - Das Entwicklerbuch" von Microsoft Press als kostenloser Download

16. Dezember 2009 , Geschrieben von Olaf Helper Veröffentlicht in #Free eBooks

Das Buch „Visual Basic 2008 - Das Entwicklerbuch“ aus dem Microsoft Press Verlag von Klaus Löffelmann, der auch schon das Buch „Visual Basic 2008 – Neue Technologien – Crashkurs“ geschrieben hat, gibt es als kostenlosen Download im PDF Format.

Der Download umfasst 2 PDF Dokumente, aufgeteilt in Teil 1 und 2 und hat insgesamt 780 Seiten.

Weiterlesen

From “Oslo” to SQL Server Modeling

15. November 2009 , Geschrieben von Olaf Helper Veröffentlicht in #MSSQL

Wie Douglas Proudy in seinem Blog verkündet, wird aus "Oslo" nun als finaller Name "Sql Server Modelling.

Siehe auch:

Developer.Com: Building Microsoft Oslo Models
Newsgroup: Mircosoft Sql Server Modeling
Download: Mircosoft "Oslo" - May 2009 CTP
Beispiele: SQL Server Modeling CTP Samples
Microsoft Data Plattform

Weiterlesen

Open Source Business Intelligence Day 2009

14. November 2009 , Geschrieben von Olaf Helper Veröffentlicht in #Event

Am 01. Dezember findet auf Schloß Romrod das erst mal die "Open Source Business Intelligence Day 2009" statt.
Thematisch geht es um Datenbanken und Data Warehouses, Datenintegration, ETL und Datenqualität, OLAP und Reporting, Data Mining und Predictive Analytics.

Weiterlesen

Microsoft Sql Azure und SSMS 2008 R2 November CTP

13. November 2009 , Geschrieben von Olaf Helper Veröffentlicht in #MSSQL

Bis hin zur letzen CTP Version Microsoft Sql Server 2008 R2 August CTP beschränkte sich die Unterstützung durch das SSMS (Sql Server Management Studio) darauf, dass man sich für eine „Abfrage“ (Query) mit einer Sql Azure Datenbank verbinden konnte. Eine Verbindung über den „Object Explorer“ ging nicht, wie ich schon mal berichtete.

Mit der Sql Server 2008 R2 November CTP hat sich das nun geändert, dort unterstützt SSMS auch Sql Azure Verbindungen, wenn auch nicht vollständig.

Man kann, obwohl eine Connection weiterhin auf eine Datenbank beschränkt ist, die [master] Datenbank einsehen und bekommt nun auch System-View angezeigt.

Es wird auch ein Node für die Replikation angezeigt, aber wenn man die anklickt, bekommt man die Meldung, dass die Funktion in der Version „10.25“ nicht unterstützt wird; aber das kommt schon noch.

Weiterlesen

CheckDB mit auswertbarem Ergebnis

13. November 2009 , Geschrieben von Olaf Helper Veröffentlicht in #T-SQL

Zu den regelmäßigen und wichtigsten Wartungsarbeiten eines DBA (Database Administrator) gehört das Ausführen aller Datenbanken mittels DBCC CHECKDB(0);, um sie auf Konsistenz und Fehlerfreiheit zu überprüfen.

Das Problem ist nur, das je komplexer die Datenbank ist, so umfangreicher das Protokoll als Ergebnis ist. Diese Ergebnisliste durchzusehen ist aufwendig und es kommt leicht vor, dass man wichtige Meldungen übersieht. Da wäre es doch besser, wenn man das Protokoll auf bestimmte Ergebnisse hin selektieren kann.

Das kann man mit dem folgenden Script, es schreibt das ResultSet in eine temporäre Tabelle und selektiert daraus die wichtigsten Eckdaten und kumulierte Werte.

Das wäre in abgewandelter Form eine gute Basis für einen „benutzerdefinierten Report“ in SSMS; muss ich aber noch dran arbeiten.

Ebenso wäre interessant, eine History-Tabelle zu verwenden, um den Datenbank-Status zeitlich zu protokollieren; schaden kann es jedenfalls nicht.

 

 -- Für MS SQL Server 2005 
 -- CheckDB für die aktuelle Datenbank ausführen und 
 -- auswerten (Status-Übersicht und Details). 
 -- Die Mindest-Stati Werte können konfiguriert werden. 
 DECLARE @MinState int, @MinStatus int, @MinLevel int 
   
 SET @MinState = 1; 
 SET @MinStatus = 0 
 SET @MinLevel = 10; 
   
 -- Temporäre Tabelle für das CheckDB Ergebnis 
 CREATE TABLE #CheckDB 
  ([Error] int, [Level] int, [State] int,  
  [MessageText] varchar(7000), [RepairLevel] int, [Status] int, 
  [DbId] int, [ObjectID] int, [IndexId] int, [PartitionId] int, 
  [AllocUnitId] int, [File] int, [Page] int, [Slot] int,  
  [RefFile] int, [RefPage] int, [RefSlot] int, [Allocation] int); 
   
 -- CheckDB ausführen und Ergebnis in die TempTabelle 
 INSERT INTO #CheckDB 
  ([Error], [Level], [State], [MessageText], [RepairLevel],  
  [Status], [DbId], [ObjectID], [IndexId], [PartitionId], 
  [AllocUnitId], [File], [Page], [Slot], [RefFile],  
  [RefPage], [RefSlot], [Allocation]) 
 EXEC ('DBCC CHECKDB(0) WITH TABLERESULTS'); 
   
 -- Die schließende Meldung mit der Zusammenfassung 
 SELECT [MessageText] 
 FROM #CheckDB 
 WHERE [Error] = 8989; 
   
 -- Übersicht mit Anzahl je Stati 
 SELECT CDB.Error, CDB.Level, CDB.State, CDB.Status, 
  CDB.RepairLevel, COUNT(*) AS CountOccurence 
 FROM #CheckDB AS CDB 
 WHERE CDB.State >= @MinState 
  AND CDB.Status >= @MinStatus 
  AND CDB.Level >= @MinLevel 
 GROUP BY CDB.Error, CDB.Level, CDB.State, 
  CDB.Status, CDB.RepairLevel; 
   
 --Ergebnis-Details selektieren 
 SELECT OBJ.name AS ObjName, OBJ.type_desc AS ObjType, 
  IDX.Name AS IndexName, 
  ALU.type_desc AS AllocationType, 
  CDB.Error, CDB.Level, CDB.State, CDB.Status, 
  CDB.RepairLevel, MessageText 
 FROM #CheckDB AS CDB 
  LEFT JOIN sys.objects AS OBJ 
  ON CDB.ObjectId = OBJ.object_id 
  LEFT JOIN sys.indexes AS IDX 
  ON CDB.ObjectId = IDX.object_id 
  AND CDB.IndexID = IDX.index_id 
  LEFT JOIN sys.allocation_units AS ALU 
  ON CDB.AllocUnitId = ALU.allocation_unit_id 
 WHERE CDB.State >= @MinState 
  AND CDB.Status >= @MinStatus 
  AND CDB.Level >= @MinLevel 
 ORDER BY ObjType, ObjName, IndexName; 
 GO 
   
 -- Aufräumen 
 DROP TABLE #CheckDB; 
 GO 
Weiterlesen
Weiterlesen

Download Links für Sql Server 2008 R2 November CTP

11. November 2009 , Geschrieben von Olaf Helper Veröffentlicht in #Download MSSQL

Also, bei mir funktioniert der Download über den Link mit dem Standard Download Manager weiterhin nicht.

Aber mit einem Manager, der auch funktioniert wie FDM, kann man über die Links die November CTP doch herunter laden.

Intel x64 (64-bit) English 1.39 GB
http://care.dlservice.microsoft.com/download/7/B/4/7B4A1F68-4D05-42C1-8982-E5CD8492C6FA/SQLFULL_x64_ENU.exe


Intel x86 (32-bit) English 1.26 GB
http://care.dlservice.microsoft.com/download/7/B/4/7B4A1F68-4D05-42C1-8982-E5CD8492C6FA/SQLFULL_x86_ENU.exe

Weiterlesen

Microsoft® SQL Server® 2008 R2 November Community Technology Preview - Express Edition

11. November 2009 , Geschrieben von Olaf Helper Veröffentlicht in #Download MSSQL

Seit heute 11.11.2009 ab ungefähr 18:00 Uhr (als MS in USA auch anfing zu arbeiten) ist der Download-Link für die November CTP auch für Nicht-Subscriber freigeschaltet. Wenn man dem folgt, wird zunächst ein Download Manager installiert und dann ... tun sich nichts mehr, jedenfalls nicht auf meinem Rechner.

Zumindest gibt es die Microsoft® SQL Server® 2008 R2 November Community Technology Preview - Express Edition
direkt über das Microsoft Download Center; ohne irgend einen Download Manager.

Weiterlesen
<< < 1 2 3 4 5 6 7 8 9 10 20 > >>