Kategorienarchiv: SQL

Mai
14

Deadlockopfer

“Die Transaktion (Prozess-ID xxxx) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.” Soweit ich das verstanden habe treten Deadlock’s auf wenn zwei Transaktionen dauerhaft auf eine bestimmte Ressource warten würden. Eine Ressource kann zbspl. eine Speicher-Seite sein. Der MS-SQL-Server erkennt …

Weiterlesen »

Mrz
31

Zahlen sortieren mal anders

So könnte man Zahlen mal auf eine andere Art sortieren:

SELECT 3 AS ID
UNION ALL
SELECT 1 AS ID
UNION ALL
SELECT 2 AS ID
ORDER BY ID

Sieht dann in etwa so aus:

SQL-Sort

Dez
12

Eingabedaten flexibel und unabhängig von der Programmiersprache mittels SQL prüfen

Möchte man Eingaben flexibel und evtl. komplexen Prüfungen unterziehen kann man sich die Fähigkeiten von SQL zu nutze machen. Ich gehe hier davon aus das die Anwendung generell eine Datenbankverbindung hat und nicht extra wegen der Prüfung eine Verbindung aufbauen muss. Ein Beispiel: Der Benutzer gibt eine Zeichenfolge ein: “D016381″. Die Anwendung muss nun etwas …

Weiterlesen »

Sep
26

Den Inhalt aller Tabellen einer Microsoft SQL-Datenbank löschen

Mit folgendem TSQL-Script wird der Inhalt aller in der aktuellen Datenbank vorhandenen Benutzer-Tabellen gelöscht: Sollte TRUNCATE TABLE wg. Referenzen oä. nicht funktionieren kann es durch das etwas langsamere DELETE FROM ersetzt werden. Bevor man das Script ausführt sollte man mehrfach Prüfen das man in der richtigen Datenbank / auf dem richtigen SQL Server ist. DECLARE …

Weiterlesen »

Mai
03

Sichten und Vernichten

Eine sehr übersichtliche SQL Sicht:

SQL Sicht

Jan
13

Microsoft SQL Datenbank Offline Schalten

Folgendes SQL Script killt ALLE Prozesse die mit einer bestimmten SQL-Datenbank verbunden sind und schaltet die Datenbank offline. Da ich gerade nicht weiß wie man einen Datenbank namen als Objekt (DECLARE .. database) definiert muss man den Datenbanknamen zweimal angeben, einmal oben bei “SET @db..” und einmal unten bei “ALTER DATABASE”. USE [master] DECLARE @spid …

Weiterlesen »

Jan
12

Prozesse von Microsoft SQL Server Killen

Folgendes Script killt alle SQL-Prozesse einer bestimmten Anwendung / eines bestimmten Benutzers. MS-SQL macht teilweise richtig Spass DECLARE @spid int DECLARE CUR CURSOR FOR SELECT spid FROM sysprocesses WHERE program_name = ‘Name der Anwendung’ AND loginame = ‘Name des SQL Benutzers’ OPEN CUR FETCH NEXT FROM CUR INTO @spid WHILE @@FETCH_STATUS = 0 BEGIN EXECUTE …

Weiterlesen »

Dez
31

Microsoft SQL Server 2000 Partitionen

Da Wochenende war kam bei mir wiedermal der Spieltrieb durch. Ich wollte mir schon immer mal die Partitionierung von Tabellen im SQL Server 2000 näher anschauen. Vorweg sei zu erwähnen das die Paritionen erst mit SQL 2005 halbwegs vernünftig implementiert sind. Partitionen in SQL 2000 (oder gar SQL 7) haben folgende (gravierende Nachteile): Es müssen …

Weiterlesen »

Sep
11

Nächste Freie Lücke in Datensätzen

Folgendes SQL Statement ermittelt die nächsten freien Datensätze innerhalb einer teilweise gefüllten Tabelle: SELECT t1.id + 1 AS id FROM tabelle t1 WHERE t1.id + 1 NOT IN (SELECT t2.id FROM tabelle t2 WHERE t2.id = t1.id + 1) ORDER BY t1.id ASC Ausgebend davon das die tabelle bereits die id’s 1, 2, 4, 5 …

Weiterlesen »