Tag: "coding"

Short-Circuiting und CASE Ausdrücke

Bart Duncan hat einen sehr interessanten Blog-Eintrag zu Short-Circuiting und CASE Audrücken verfasst. mehr »

SELECT COUNT(*) vs. SELECT COUNT(1)

Immer wieder kann man die Datenbank Communities die Behauptung lesen, dass ein SELECT (1) schneller sein soll als ein SELECT COUNT(*). mehr »

Wie oft wird ein Trigger abgefeuert?

Genau einmal pro INSERT/UPDATE/DELETE Aktion wird ein Trigger abgefeuert. Auch wenn zum Beispiel ein UPDATE Statement mehr als eine Zeile betrifft. mehr »

ERROR_PROCEDURE gibt keinen Schemanamen zurück

Ein kürzlicher Beitrag von Yuri (object_id der aktuellen gespeicherten Prozedur ermitteln) hat mich daran erinnert, dass ich schon seit einiger Zeit meinem Unmut über eine Inkonsequenz in SQL Server Ausdruck verleihen wollte. mehr »

IDENTITY Eigenschaft entfernen

So einfach und leicht das Definieren der IDENTITY Eigenschaft für eine numerische Spalte ist, so umständlich und wenig intuitiv ist das Entfernen dieser Eigenschaft später wieder. Es gibt tatsächlich keinen direkten Weg, so wie ALTER TABLE DROP IDENTITY… mehr »

DEFAULT Constraint mit systemdefiniertem Namen löschen

Dies passiert häufig, wenn man graphische Tools wie SSMS zum Tabellendesign verwendet oder seine CREATE TABLE Statements folgendermassen schreibt: mehr »

Zahlen eines Integers aufaddieren

DECLARE @i int, @l int; SELECT @i = 12, @l = LEN(@i); SELECT SUM(x.Digit) FROM (SELECT CAST(SUBSTRING(RTRIM(@i), N.Number, 1) AS int) AS Digit FROM dbo.Number N WHERE N.Number BETWEEN 1 AND… mehr »

JOIN Stolperfallen Teil 2

Immer wieder kann man Leute beobachten, die fragen, warum ihr LEFT JOIN Statement nicht das gewünschte Resultset zurückbringt. mehr »

Beginning T-SQL 2008

Bücher für Anfänger in T-SQL gibt es mittlerweile viele. Darunter sind sowohl gute als auch weniger gute. Die Wahl des "richtigen" Buches ist naturgemäss nicht einfach und schnell kann es passieren, dass der Leser durch das für ihn falsche Buch das… mehr »

Expert SQL Server 2008 Encryption

Es ist keine grosse Neuigkeit, dass an immer mehr Stellen immer mehr Daten gesammelt werden und dementsprechend auch die dahinterliegenden Datenbanken immer grösser und komplexer werden. Gleichzeitig ist es auch keine Neuigkeit, dass diese Daten mehr… mehr »

Sichtbarkeit von Metadaten

Eine dieser berühmt-berüchtigten "Kleinigkeiten", über die ich mir bisher wenig Gedanken gemacht habe, ist die Sichtbarkeit von Metadaten innerhalb einer SQL Server Datenbank. Sie waren bisher einfach immer und überall verfügbar, sprich abfragbar.… mehr »

Spaltenwerte als kommaseparierte Liste zurückgeben Teil 2

In diesem Beitrag haben wir uns mit der Rückgabe von Werten einer Spalte als separierte Liste beschäftigt. Vielfach sieht man aber auch die Anforderung, diese Liste auf der Basis eines bestimmten Schlüsselwertes zu generieren. mehr »

Wie kann ich Startup Prozeduren identifizieren?

Startup Prozeduren werden beim Start von SQL Server ausgeführt. Typische Verwendungszwecke sind zum Beispiel: das Befüllen von globalen Parameter Tabellen Um eine Prozedur als Startup Procedure festzulegen, muß man die Systemprozedur sp_procoption… mehr »

Wie kann ich Startup Prozeduren identifizieren?

Startup Prozeduren werden beim Start von SQL Server ausgeführt. Typische Verwendungszwecke sind zum Beispiel: das Befüllen von globalen Parameter Tabellen Um eine Prozedur als Startup Procedure festzulegen, muß man die Systemprozedur sp_procoption… mehr »

Wie kann ich programmatisch IDENTITY Spalten in meinen Tabellen identifizieren?

In SQL Server 2000 und früher funktioniert folgendes: SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA+'.'+TABLE_NAME), COLUMN_NAME,'IsIdentity')=1; SELECT su.name AS TABLE_NAME,… mehr »

SQL Server rundet falsch oder doch nicht

Multipliziert man zwei Zahlen, die in Addition sowohl bei den Vorkomma- als auch bei den Nachkommastellen, den derzeit "maximalen" Datentyp DECIMAL(38,10) überschreitet, kann man unter Umstände eine Überraschung erleben. Das Ergebnis weicht ab von… mehr »

JOINs

Einer der effizientesten Wege, um die JOIN Performance zu erhöhen ist die Anzahl der Zeilen die geJOINt werden, zu beschränken. Dies gilt insbesondere für die äußere(n) Tabelle(n) eines JOINs. Es sollten nur die Zeilen zurückgegeben werden, die auch für… mehr »

Pro SQL Server 2005 T-SQL Recipes

Die Online Hilfe des SQL Servers (Books Online, aka BOL) ist eine technische Dokumentation, die an Umfang und Ausführlichkeit kaum Wünsche offenläßt. Nahezu alles, was man zum SQL Server wissen muß und will, wird in BOL erklärt. Man muß "nur" wissen,… mehr »

Nominalzins aus Effektivzins errechnen

Wie man die effektive Verzinsung aus der Nominalverzinsung errechnet, haben wir in diesem Beitrag gesehen. Neulich hat mich aber ein Posting in den MSDN Newsgroups auf die Excel Funktion NOMINAL() aufmerksam gemacht, die genau das Gegenteil macht.… mehr »

JOIN Hints

JOIN Hints können in einer Abfrage verwendet werden, um den JOIN Typ festzulegen, den der Query Optimiser für den Ausführungsplan verwenden soll: Folgende JOIN Optionen stehen zur Verfügung: - Loop - Merge - Hash Die Syntax für einen JOIN Hint ist (am… mehr »

Die deutsche 30/360 Zinsberechnungsmethode

In den guten alten Tagen als Computer noch kaum vorhanden und noch weniger leistungsfähig waren, entwickelte sich die deutsche Zinsberechnungsmethode. Die Hauptbesonderheit dieser Methode besteht darin, daß jeder Monat fiktiv 30 Tage hat. Egal, wie… mehr »

Die effektive jährliche Verzinsung

Beliebt sind (oder besser gesagt, waren) diese Informationen bei Kreditangeboten aller Art. Einen monatlichen Zinssatz durch die Multiplikation * 12 in einen jährlichen umzurechnen, ist zur gleichen Zeit richtig und doch nicht. Auf diese Weise… mehr »

Speichern von Formeln in Spalten

Wie könnte es aussehen, wenn man in einem so dynamischen Umfeld arbeitet, daß man selbst die mathematischen Berechnungsformeln nicht hart kodieren will... mehr »

Kleines Beispiel über COUNT()

Unter den diversen Aggregatfunktionen des T-SQL Arsenals nimmt COUNT() einen einmaligen Platz ein, weil dies die einzige Funtion ist, die "NULL-aware" ist. Das heißt, je nach Verwendung werden NULL Marker berücksichtigt oder nicht. mehr »

Vorsicht bei der Verwendung von ISNUMERIC()

Liest man sich die Onlinehilfe von SQL Server durch und gelangt an das Thema ISNUMERIC(), erhält man den Eindruck, daß dies eine einfache, schnelle und sichere Methode ist, um zu überprüfen, ob ein gegebener Ausdruck in einen von SQL Server… mehr »
1 3