SQL Server auf komprimierten Laufwerken

Posted on Jul 12, 2004 von in SQL Server

Wahrscheinlich wird die Datenbank laufen, allerdings wird dies von Microsoft weder empfohlen noch supported, und hier steht auch warum nicht.

Tags: ,

SQL Server 2000 SP3 rückgängig machen

Posted on Jul 12, 2004 von in SQL Server

Einmal in der ReadMe Datei und dann unter http://support.microsoft.com/default.aspx?scid=/support/servicepacks/SQL/2000/SP3ReadMe.asp.
Kurz gesagt, steht dort, SP3 kann rückgängig werden, indem man es entfernt, SQL Server neu installiert und Backups zurückspielt. ;-)

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)

VBScript split Funktion in T-SQL

Posted on Jul 12, 2004 von in SQL Server

Diese Website hat Beispiele für SQL2K und SQL7:
www.users.drew.edu/skass/sql (Homepage von SQL Server MVP Steve Kass)

Ganze Geschichte »

Zeit aus einer DATETIME Spalte entfernen

Posted on Jul 12, 2004 von in SQL Server

Der Datetime Datentyp, so wie er im SQL Server 2000 und früher implementiert ist, enthält immer einen Zeitpart. Somit ist der Titel dieses Beitrages evtl. etwas irreführend. Dieser Zeitanteil kann jedoch auf Mitternacht gesetzt werden, somit faktisch = 0, und wirkt sich damit nicht weiter störend aus.
Hier sind einige Beispiel, wie dies erreicht werden kann:

Ganze Geschichte »

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 »

Unterschied zwischen Primary Key und Unique Key

Posted on Jul 12, 2004 von in SQL Server

UniqueKey: Die Werte eines UNIQUE KEY Index sind eindeutig. Ein NULL Wert kann genau einmal gespeichert werden.
PrimaryKey: Die Werte eines PRIMARY KEY Index, sind eindeutig und nicht NULL. NULL ist nicht zulässig.

Ganze Geschichte »

String Truncation

Posted on Jul 12, 2004 von in SQL Server

SQL Server konvertiert Daten (und schneidet diese notfalls auch ab) wo dies angebracht erscheint. Wenn zu einem VARCHAR Wert konvertiert wird explizit oder implizit) und dieser zu gross für die Spalte ist, wird SQL Server * einfügen.
Weitere Informationen stehen in der Onlinehilfe unter CAST und CONVERT.
Danke an David Burrows für diesen Tip.

CREATE TABLE #test
(
col1 VARCHAR(2)
)
GO
INSERT INTO #test(col1) VALUES('15')
INSERT INTO #test(col1) VALUES(15)
INSERT INTO #test(col1) VALUES('157')
INSERT INTO #test(col1) VALUES(157)

SELECT
*
FROM
#test
DROP TABLE #test



(1 row(s) affected)


(1 row(s) affected)

Server: Nachr.-Nr. 8152, Schweregrad 16, Status 9, Zeile 3
Zeichenfolgen- oder Binärdaten werden abgeschnitten.
Die Anweisung wurde beendet.

(1 row(s) affected)

col1
----
15
15
*

(3 row(s) affected)