Tag: "t-sql"

Ermittlung des n-ten Datensatzes

Posted on Jul 13, 2004 von in SQL Server

Solche und ähnliche Fragen sind häufig zu beobachten. Die Antwort ist allerdings nicht immer einfach, da es sich hier eigentlich um Zeilenpositionierungsprobleme handelt, die streng genommen einer relationalen Datenbank mit ihrem set-basierten Ansatz widersprechen. Trotzdem gibt es auch hier diverse Lösungen...

Ganze Geschichte »

DDL Skripte generieren

Posted on Jul 13, 2004 von in SQL Server

Original von Tibor Karaszi; deutsche Übersetzung von Frank Kalis

Übersicht
Im folgenden finden Sie verschiedene Techniken und Produkte, die DDL Skripte für Ihre Datenbankobjekte und/oder INSERT Statements für Ihre Daten generieren können.

Zusatzinformation
Ich empfehle, dass Sie DDL wie Quellcode behandeln. Typischerweise bedeutet dies, dass Sie Ihr DDL in Dateiform aufbewahren und generell ein Quellcodeverwaltungsprogramm verwenden, dass Sie Objekte ein- und auschecken lässt und auch in der Lage ist, verschiedene Versionsstände Ihres Datenbankschemas zu verwalten.

Ganze Geschichte »

Datenbanken vor Benutzern verstecken

Posted on Jul 13, 2004 von in SQL Server

Dies hängt eigentlich von der Applikation ab, mit der sich die Benutzer zum SQL Server verbinden. Tatsache ist, dass sysdatabases von jedem Benutzer gelesen werden kann, der sich verbindet. Egal, ob die Applikation nun die Datenbanken zeigt oder nicht, wenn die Benutzer

Ganze Geschichte »

Dynamisches ORDER BY Kriterium

Posted on Jul 13, 2004 von in SQL Server

Vielfach ist es üblich, dynamisches SQL zu verwenden, wenn eine Prozedur für verschiedene Sortierkriterien verwendet werden soll. Dabei kann dieses dynamische SQL relativ einfach vermieden werden.

Ganze Geschichte »

Spalte nachträglich in IDENTITY Spalte ändern

Posted on Jul 13, 2004 von in SQL Server

Nun, erst einmal gibt es keine *IDENTITY* Spalte. IDENTITY ist eine Eigenschaft, die für numerische Spalten definiert werden kann.

Ganze Geschichte »

Monatsultimo ermitteln

Posted on Jul 13, 2004 von in SQL Server

Die Ermittlung bestimmter Tage taucht in dieser oder jener Form immer mal wieder auf. T-SQL bietet hierfür sehr wirkungsvolle Methoden an:

Ganze Geschichte »

Erster und letzter Tag des Folgemonats

Posted on Jul 12, 2004 von in SQL Server
SELECT 
CONVERT(CHAR(6),DATEADD(MONTH, 1, GETDATE()),112)
+
'01' AS 'firstDayofNextMonth'
, CONVERT(CHAR(8),DATEADD(day, -1, CONVERT(CHAR(6),DATEADD(MONTH, 2, GETDATE()),112)
+
'01'),112) AS 'lastDayofNextMonth'

firstDayofNextMonth lastDayofNextMonth
------------------- ------------------
20040701 20040731

(1 row(s) affected)

Ergänzung 17.11.2004: Das Ganze kann aber auch folgendermaßen ausgedrückt werden:

SELECT 
DATEADD(MONTH,DATEDIFF(MONTH,30,GETDATE()),30)+1
, DATEADD(MONTH,DATEDIFF(MONTH,30,GETDATE())+1,30)


------------------------- ------------------------
2004-12-01 00:00:00.000 2004-12-31 00:00:00.000

(1 row(s) affected)

GETDATE innerhalb einer UDF

Posted on Jul 12, 2004 von in SQL Server

GETDATE() ist nichtdeterministisch. Eine deterministische Funktion liefert ceteris paribus immer das gleiche Ergebnis. Da GETDATE() keine Argumente entgegennimmt und stets unterschiedliche Werte zurückgibt, ist die Funktion nicht deterministisch. Dies ist auch der Grund, warum man GETDATE() nicht als DEFAULT innerhalb der Funktion definieren kann. Nur deterministische Funktionen können, wie in BOL beschrieben, in UDF's verwendet werden.
Man kann das aber umgehen, indem man einen VIEW erzeugt, der GETDATE() zurückgibt und dann diesen VIEW in der UDF referenziert.

Ganze Geschichte »