Umwandeln von Hexadezimal nach Integer

Posted on Jul 13, 2004 von in SQL Server
SET NOCOUNT ON
DECLARE @hex VARCHAR(10)
DECLARE @stmt NVARCHAR(255)
DECLARE @int INT 
SET @hex = '0x0000008A' 
SELECT @stmt = N'SELECT @int = CONVERT( int , ' + @hex + ' )' 
EXEC sp_ExecuteSql @stmt, N' @int Int Out', @int OUT SELECT @int GO
GO

GO          
----------- 
138

Ganze Geschichte »

Unterschied zwischen DELETE und TRUNCATE

Posted on Jul 13, 2004 von in SQL Server

DELETE logged die Daten für jede einzelne Zeile, die von dem Statement betroffen sind und entfernt physikalisch den Record aus der Seite. Fährt man seine Datenbanken im "Full Recovery" Modus, kann die Aufzeichnung eines jeden einzelnen betroffenen Datensatzes das Transaktionsprotokoll enorm aufblähen. Dies ist aber notwendig, damit SQL Server im Falle einen Falles die Datenbank so aktuell wie möglich wiederherstellen kann. Der Umstand, das jeder Datensatz protokolliert wird, macht auch verständlich, daß umfangreiche DELETE Operationen langsam sind.

Ganze Geschichte »

GETDATE() und Julianisches Datum

Posted on Jul 13, 2004 von in SQL Server
SELECT
 YEAR(GETDATE())*1000
 +
 DATEPART(y,GETDATE()) AS the_date

the_date    
----------- 
2004182

(1 row(s) affected)

Danke an Jonathan van Houtte!

Unterschiede zwischen DECIMAL und NUMERIC

Posted on Jul 13, 2004 von in SQL Server

Der Unterschied zwischen beiden Datentypen ist mehr als subtil im SQL 92 Standard.

Ganze Geschichte »

Das Alter einer Person

Posted on Jul 13, 2004 von in SQL Server
DECLARE @d DATETIME
SET @d = '23.07.1968'
SELECT
     DATEDIFF(yyyy,CAST(@d AS DATETIME),GETDATE()) 
     - 
     (CASE WHEN DATEADD(yyyy,DATEDIFF(yyyy,CAST(@d AS DATETIME),GETDATE()),CAST(@d AS DATETIME)) > 
     GETDATE() THEN 1 ELSE 0 END)

            
----------- 
35

(1 row(s) affected)

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 »

Neukompilierung Gespeicherter Prozeduren und SET Optionen

Posted on Jul 13, 2004 von in SQL Server

Original von Tibor Karaszi; deutsche Übersetzung von Frank Kalis

Überblick
Die Verwendung Gespeicherter Prozeduren wird allgemein als gute Praktik betrachtet. Einer der Vorteile Gespeicherter Prozeduren ist deren Vorkompilierung. Dies bedeutet, dass zur Ausführungszeit SQL Server den vorkompilierten Ausführungsplan der Gespeicherten Prozedur aus dem Cache holt und ausführt, falls dieser bereits im Cache vorhanden ist. Dies ist generell schneller als den Code bei jeder Ausführung zu optimieren und kompilieren. Unter bestimmten Umständen jedoch, ist es jedoch notwendig, eine Prozedur während der Ausführung neu zu kompilieren.

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 »