Archiv der Kategorie 'MS SQL Server'

begin try in SQL-Batch-Statements

Dienstag, den 22. Juni 2010

Es kommt öfter vor, dass man im Batch mehrere SQL-Statements ausführen möchte, sei es in einer Stored Procedure oder im Execute SQL-Task von SSIS.
Meistens hat man folgende Anforderung:
Läuft ein Statement auf einen Fehler, soll ein Rollback der Statements gemacht werden. Außerdem soll natürlich dem aufrufenden System der Fehler gemeldet werden.
Lässt man einen Batch einfach so [...]

Verhalten von Views bei Strukturänderungen der zugrundeliegenden Tabellen

Dienstag, den 16. März 2010

Ein View, der mittels * alle Spalten einer verwendeten Tabelle zurückgibt, wie z.B.

CREATE VIEW dbo.testView
AS
SELECT u.*, k.name as Kunden_Name, k.AnzahlKinder
FROM umsatz u
INNER JOIN kunde k
ON k.kunde_id = u.kunde_id

verhält sich überaschend, wenn sich die Tabellenstruktur der zugrunde liegenden Tabellen ändert. Die Metainformationen aktualisieren sich nämlich nicht automatisch, was sogar zu Datentypsverletzungen führen kann.
Nehmen wir an, die [...]

SQL: Dateiname extrahieren

Dienstag, den 21. April 2009

Hier ein schönes Beispiel, in der man die SQL-Server-String-Funktion reverse zum Umdrehen eines Strings (Hallo –> ollaH) sinnvoll einsetzen kann.
Wir nehmen an, dass in einer Tabelle Dateinamen voll qualifiziert stehen, also z.B. c:\temp\blog\test.txt.
Nun sei die Aufgabe, den Dateinamen (hier test.txt) zu ermitteln. Dazu muss das letzte Auftreten von \ gefunden werden und der String rechts [...]

Performance und GUIDs

Dienstag, den 3. März 2009

In einem Kunden-Projekt sollte ich die Performance der SQL-Zugriffe einer .NET-Applikation verbessern.
Hier beschreibe ich die Ergebnisse, da sie sich auch auf andere Szenarien verallgemeinern lassen.
Die erste Veränderung war, keine GUIDs als clustered primary keys zu verwenden. Stattdessen setzen wir nun ints (mit Identity) ein. Dies führt zu einer immensen Beschleunigung bei den INSERTs in die [...]