Achtung – Urheberrechtshinweis!
Die Artikel dieses Blogs stehen unter einer CREATIVE COMMONS LICENSE! Bitte beachten Sie die entsprechenden Hinweise auf http://creativecommons.org/licenses/by-sa/2.0/de/
Bei Fragen oder Anregungen wenden Sie sich bitte an blog {at} fourdragons(.)de
Ein Ehepaar beschließt dem Winter in Deutschland zu entfliehen und bucht eine Woche Südsee.Leider kann die Frau aus beruflichen Gründen erst einen Tag später als ihr Mann fliegen. Der Ehemann fährt wie geplant. Dort angekommen bezieht er sein Hotelzimmer und schickt seiner Frau per Laptop sogleich eine Mail. Blöderweise hat er sich beim Eingeben der E-Mail-Adresse vertippt und einen Buchstaben vertauscht. So landet die E-Mail bei einer Witwe, die gerade von der Beerdigung ihres Mannes kommt und gerade die Beileidsbekundungen per E-Mail abruft. Als ihr Sohn das Zimmer betritt, sieht er seine Mutter bewußtlos zusammensinken. Sein Blick fällt auf den Bildschirm, wo steht:
AN: meine zurückgebliebene Frau
VON: Deinem vorgereisten Gatten
BETREFF: Bin gut angekommen.
Liebste, bin soeben angekommen. Habe mich hier bereits eingelebt und sehe, dass für Deine Ankunft alles schon vorbereitet ist. Wünsche Dir eine gute Reise und erwarte Dich morgen. In Liebe, Dein Mann.
PS: Verdammt heiß hier unten!
Also immer aufpassen das man sich nicht vertippt
Achtung – Urheberrechtshinweis!
Die Artikel dieses Blogs stehen unter einer CREATIVE COMMONS LICENSE! Bitte beachten Sie die entsprechenden Hinweise auf http://creativecommons.org/licenses/by-sa/2.0/de/
Bei Fragen oder Anregungen wenden Sie sich bitte an blog {at} fourdragons(.)de
Wenn man in SQL-Server eine Abfrage durchführt, so kann man die Ergebnisse mit einem Rechtsklick als CSV-Datei speichern.

Ein Blick in das Ergebnis zeigt jedoch ein “merkwürdiges” Byte am Anfang des Ausgabefiles! Diese “Sonderzeichen” sind allerdings kein Ausgabefehler, sondern definieren die sogenannte Byte Order. Es handelt sich also um eine Markierung die mir die Interpretationsreihenfolge der im Ausgabefile enthaltenen Bytes definiert.
Daher auch der Name: Byte Order Mark … oder kurz: BOM
Mehr…
Achtung – Urheberrechtshinweis!
Die Artikel dieses Blogs stehen unter einer CREATIVE COMMONS LICENSE! Bitte beachten Sie die entsprechenden Hinweise auf http://creativecommons.org/licenses/by-sa/2.0/de/
Bei Fragen oder Anregungen wenden Sie sich bitte an blog {at} fourdragons(.)de
Die Funktionen row_number(), rank(), dens_rank() und ntile() fristen in vielen Fällen ein unscheinbares Leben in unseren Datenbanken. Seit SQL-Server 2005 wurden diese Funktionen zur Vereinfachung von diversen Gruppierungs- sowie Rangfolgenbedingungen eingeführt.
Leider kennen die meisten meiner Kollegen den Großteil dieser Funktionen nicht, bzw. setzten sie aus Angst vor dem “Unbekannten” nicht ein. Der Standardspruch lautet immer wieder: “Das haben wir bisher nicht gebraucht, warum gerade jetzt!” oder “Bis ich mir die Syntax angeschaut habe, habe ich es auch schon wie immer gemacht!”.
Für alle die sich vielleicht dann doch auf neue Ufer begeben möchten, hier eine kleine Übersicht:
- Row_Number: Zählt Datensätze aufsteigend
- Rank: Zählt die Rangfolge von Datensätzen. Wenn 2 Zeilen den selben Wert aufweisen, wird die selbe Rangnummer vergeben und danach mit der Reihenfolge weitergezählt die der fortlaufenden Nummer entsprechen würde.
- Dens_Rank: Verhält sich wie rank(), jedoch wird mit der nächstmöglichen Rangfolge weitergezählt.
- NTile: Teilt das Ergebnisset in n gleiche Teile auf (Quartale, Zehntel, Halbe usw.)
Mehr…
Achtung – Urheberrechtshinweis!
Die Artikel dieses Blogs stehen unter einer CREATIVE COMMONS LICENSE! Bitte beachten Sie die entsprechenden Hinweise auf http://creativecommons.org/licenses/by-sa/2.0/de/
Bei Fragen oder Anregungen wenden Sie sich bitte an blog {at} fourdragons(.)de
Wenn man das Schema eines Objekts (Tabelle, Prozedur, Funktion usw.) ändern möchte, so ist dies mit einem einfachen T-SQL-Befehl möglich:
| 1 | ALTER SCHEMA schema_name TRANSFER securable_name |
Dynamisch könnte man sich dann eine Schleife bauen, die alle Objekte aus Schema A in Schema B verschiebt: Mehr…
Achtung – Urheberrechtshinweis!
Die Artikel dieses Blogs stehen unter einer CREATIVE COMMONS LICENSE! Bitte beachten Sie die entsprechenden Hinweise auf http://creativecommons.org/licenses/by-sa/2.0/de/
Bei Fragen oder Anregungen wenden Sie sich bitte an blog {at} fourdragons(.)de
Ich benötige für sehr viele Fälle immer wieder eine Feldliste (Kommagetrennt) um dynamische Abfragen aufbauen zu können. Hier mal ein Script dass diese Aufgabe für alle Tabellen einer Datenbank erfüllt. Man könnte sich hier natürlich eine Table-Valued-Function vorstellen die man dann sogar noch nach Tabellegruppen, Schemas usw. filtern könnte.
Hier das Ergebnis:

Mehr…
Achtung – Urheberrechtshinweis!
Die Artikel dieses Blogs stehen unter einer CREATIVE COMMONS LICENSE! Bitte beachten Sie die entsprechenden Hinweise auf http://creativecommons.org/licenses/by-sa/2.0/de/
Bei Fragen oder Anregungen wenden Sie sich bitte an blog {at} fourdragons(.)de
Hier noch ein kleiner Codeschnipsel mit dem man alle Tabellen mit einem Identity-Feld feststellen kann:
| 1 | SELECT s.name AS SchemaName |
| 2 | ,o.name AS TabellenName |
| 3 | ,c.name AS IdentityFeld |
| 4 | FROM sys.objects o |
| 5 | join sys.schemas s ON s.schema_id = o.schema_id |
| 6 | join sys.columns c ON c.OBJECT_ID = o.OBJECT_ID |
| 7 | WHERE c.is_identity = 1 |
Die Ausgabe sieht dann so aus:

have fun
Achtung – Urheberrechtshinweis!
Die Artikel dieses Blogs stehen unter einer CREATIVE COMMONS LICENSE! Bitte beachten Sie die entsprechenden Hinweise auf http://creativecommons.org/licenses/by-sa/2.0/de/
Bei Fragen oder Anregungen wenden Sie sich bitte an blog {at} fourdragons(.)de
Wenn man ein Datenbankobjekt in SQL-Server umbenennen möchte, kann man hierzu eine System-Prozedur verwenden. SP_RENAME kann so gut wie alle Datenbankobjekte neu benennen.
So einfach wie das Umbenennen ist, so gefährlich kann es auch werden. Wenn man also versucht ein Objekt mit sp_rename zu bearbeiten, dass seinen Quellcode in der Systemview sys.sql_modules speichert, so funktioniert dies augenscheinlich sehr leicht. Im Hintergrund wird allerdings nur das Objekt umbenannt. Der Quellcode enthält jedoch ebenfalls den Objektnamen in Form eines
“Create [objekttyp] [objektname] as …”
Der Objektname der hier enthalten ist wird bei der Aktion nicht umbenannt! Dies kann in der Folge zu einigen Problemen führen, wenn die Systemviews für Deployment oder vergleichbare Aufgaben herangezogen werden.
Mehr…