Tabelle in eine andere Filegroup verschieben

Die einfachste Lösung hierfür ist es, den Clustered Index auf dieser anderen Filegroup neu zu erstellen. Die Verwendung der DROP EXISTING Option beschleunigt diese Operation. mehr »

SELECT New_Life

Danke an David Burrows, der mir diesen Batch zur Geburt meines zweiten Sohnes schrieb! Keep up the good work and see ya on SQL Server Central, Dave! DROP Dirty_Nappy GO SELECT Clean_Nappy FROM Nappy_Pile WHERE COUNT(Clean_Nappy) > 0 INSERT… mehr »

Nachtrag zum Datetime Datentypen

Die anderen 4 Byte speichern die Tageszeit, die als Anzahl der Millisekunden seit Mitternacht dargestellt wird.Dies kann man in der Januar 2004 Edition von BOL  nachlesen.Gibt man z.B. den Wert 300 in die zweiten 4-bytes eines Datetimes ein, erhält man a… mehr »

Der DATETIME Datentyp

Der DATETIME Datentyp ist 8 Bytes gross. Die ersten vier Bytes speichern die Anzahl der Tage vor oder nach dem 01.01.1900; die letzten vier Bytes speichern die Anzahl der 'Clock Ticks' seit Mitternacht. Die binäre Darstellung jedes der beiden 4-byte Stüc… mehr »

Konvertierung aus Julianischem Kalender

DECLARE @yr INT DECLARE @jd INT SELECT @yr = 2002, @jd = 245 SELECT DATEADD(yyyy, @yr - 1900, -1) + @jd AS Julian_Date Julian_Date ------------------------------------------------------ 2002-09-02… mehr »

Sekunden in Minuten umwandeln

DECLARE @sekunden INT SET @sekunden = 61 SELECT CONVERT(VARCHAR(2), FLOOR(@sekunden/60)) + ':' + RIGHT('0' + CONVERT(VARCHAR(2), (@sekunden%60)), 2) ----- 1:01 (1 row(s) affected) mehr »

AWE Memory SQL Server Performance Tuning Tips

Original von Brad M. McGehee; deutsche Übersetzung von Frank Kalis Falls Sie SQL Server 2000 Standard Edition unter Windows NT 4.0 oder Windows 2000 (alle Versionen) oder SQL Server 2000 Enterprise Edition unter Windows NT 4.0 oder Windows 2000 Server… mehr »

Log Datei auslesen

SQL Server selber bietet hier einen undokumentierten DBCC Befehl anDBCC log ( {dbid|dbname}, [, type={-1|0|1|2|3|4}] )type zeigt nur minimale Informationen an, -1 zeigt die vollständigen Informationen anAllerdings ist anzumerken, dass für Normalsterblich… mehr »

Laufende Summe in T-SQL

IF OBJECT_ID('lfdsum_t') IS NOT NULL DROP TABLE lfdsum_t GO CREATE TABLE lfdsum_t (col1 int) INSERT INTO lfdsum_t values (1); INSERT INTO lfdsum_t values (2); INSERT INTO lfdsum_t values (3); INSERT INTO lfdsum_t values (4); INSERT INTO lfdsum_t… mehr »

Wofür ist xp_servicecontrol?

xp_servicecontrol ist eine undokumentierte erweiterte Prozedur, die zur Kontrolle von Diensten auf der SQL Server Maschine eingesetzt werden kann. mehr »

Instanzen von SQL Server identifizieren

Für alle diejenigen, die noch wissen was die DOS Eingabeaufforderung ist :) net start | find "MSSQL"   MSSQLSERVER MSSQLServerOLAPService (falls man die Analysis Services installiert hat) Hat man hingegen benannte Instanzen sieht das Ganze etwa… mehr »

DATETIME Spalten gruppieren und sortieren

SELECT DATEADD(day, 0 , DATEDIFF(day, 0, MsgDateReceived)) AS "Datum" , COUNT(*) AS Anzahl FROM mails_header GROUP BY DATEADD(day, 0 , DATEDIFF(day, 0, MsgDateReceived)) ORDER BY "Datum" DESC mehr »

SQL Server Port ändern

Ja, der Port kann auf jeden anderen nicht benutzen Port geändert werden. mehr »

Umwandeln von Hexadezimal nach Integer

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… mehr »

Unterschied zwischen DELETE und TRUNCATE

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 Da… mehr »

GETDATE() und Julianisches Datum

SELECT YEAR(GETDATE())*1000 + DATEPART(y,GETDATE()) AS the_date the_date ----------- 2004182 (1 row(s) affected) Danke an Jonathan van Houtte! mehr »

Unterschiede zwischen DECIMAL und NUMERIC

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

Das Alter einer Person

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)… mehr »

Ermittlung des n-ten Datensatzes

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 wid… mehr »

Neukompilierung Gespeicherter Prozeduren und SET Optionen

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… mehr »

DDL Skripte generieren

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.… mehr »

Der Unterschied zwischen SET und SELECT

Original von Narayana Vyas Kondreddi; deutsche Übersetzung von Frank Kalis Traditionell waren SQL Server Datenbankentwickler es gewohnt, SELECT zu verwenden um Werte einer Variablen zuzuweisen. Dies funktionierte einwandfrei und war eine absolut gültige… mehr »

Datenbanken vor Benutzern verstecken

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, w… mehr »

Dynamisches ORDER BY Kriterium

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. mehr »

Spielt die Anordnung der Tabellen bei einem INNER JOIN eine Rolle für die Performance

Nicht wirklich. Da bei einem INNER JOIN nur die Werte beider Tabellen gefunden werden, bei denen die Spaltenwerte die per JOIN verknüpft werden, identisch sind, gilt folgendes:A=B was logischerweise auch bedeutet:B=A Von daher ist die Tabellen… mehr »