Category Archives: SQL
SQL Select Begin day and End day
1 2 3 4 5 6 7 8 |
DECLARE @from datetime = '12.01.2016'; DECLARE @to datetime = '12.31.2016'; DECLARE @beginDay datetime = cast (@from as DATE); DECLARE @endDay datetime = DATEADD(ms, -100, DATEADD(s, 86400, @to)); select @beginDay,@endDay |
Result: (No column name) (No column name) 2016-12-01 00:00:00.000 2016-12-31 23:59:59.900
Zuletzt ausgeführte Querys anzeigen lassen
ab SQL Server 2005
1 2 3 4 |
SELECT deqs.last_execution_time AS [Time], dest.text AS [Query] FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest ORDER BY deqs.last_execution_time DESC |
SQL Server 2005
1 2 3 4 5 6 7 8 9 |
Use master SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script] ,* FROM sys.dm_exec_query_stats AS execquery CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql --WHERE CONVERT(VARCHAR(MAX),execsql.text) LIKE '%Truncate%' ORDER BY total_elapsed_time,execquery.last_execution_time DESC |
SQL Select nur Datum von Datetime
1 |
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date)) |
T-Sql Datenbankverbindung schnell testen
Um mal eben schnell irgendwo zu testen, ob die Datenbankverbindung in Ordnung ist, gibt es einen kleinen Trick. Man erstellt eine Textdatei und benennt die Dateiendung zu .udl um rechte Maustaste, Eigenschaften und dann auf Verbindung. Dort hat man nun alles nötige um eine Datenbankverbindung zu testen
mit Dapper ein SQL join mappen
Da ich von Entity Framework 6 aus Perfomancegründen überhaupt nicht zufrieden bin, frage ich mich ernsthaft, wie einige das produktiv einsetzen. Daraufhin habe ich nach einer Alternative gesucht und bin bei Dapper, einem Projekt von Source stehen geblieben. Hier möchte ich einmal kurz zeigen, wie man mit Dapper eine Liste mit dem erstellten SQL Join […]
SQL With
Kennt Ihr SQL Abfragen wie
1 2 3 4 |
SELECT CASE WHEN Beispiel = 1 THEN 'Apfel' ELSE 'Birne' END as Frucht WHERE Frucht...? |
jetzt könnte man hingehen und die case when Anweisung in die Where Klausel bringen. Dies würde aber den Code unnötig aufblähen und Fehler sind einprogrammiert. Jetzt bietet SQL die With Anweisung an. Diese kann man sich wie eine ausgelagerte View vorstellen, auf die man zugreifen kann.
1 2 3 4 5 6 7 8 9 |
;with Obstbaum as ( SELECT CASE WHEN Beispiel = 1 THEN 'Apfel' ELSE 'Birne' END as Frucht From Plantage ) SELECT * FROM Obstbaum Where Frucht = 'Birne' |
Wir sehen […]
Bulkupsert oder einfach Update, wenn bereits vorhanden ansonsten Insert in MSSQL
Lange habe ich nach einer vernünftigen Lösung gesucht, um riesige Datenmengen schnell in die Datenbank zu schreiben. Als Quelle steht uns eine List<Class> mit der Klasse zur Verfügung, die der Datenbanktabelle gleicht und jede Menge Inhalte enthält. Versucht man diese Liste nun über das Entity Framework in die Datenbank zu jagen, merkt man schnell, dass […]
MS-SQL Trigger
Trigger werden ausgeführt, wenn in einer Tabelle ein Ereignis ausgelöst wird. Konkret heißt das, dass bei einem INSERT,UPDATE oder DELETE wir eingreifen können und einen oder mehrere Befehle „danach“ oder „anstelle“ von ausführen können.
1 2 3 4 5 6 |
CREATE TRIGGER tr_TRIGGERNAME ON TABELLE_DIE_ÜBERWACHT WIRD AFTER / INSTEAD OF INSERT,UPDATE, DELETE AS DECLARE @test_variable varchar(max) = 'test' BEGIN print 'abc' END |
Wählen wir AFTER, dann wird der Datensatz erstellt/geupdated oder gelöscht und erst dann greift der Trigger ein. Wählen wir stattdessen Instead […]
SQL Server – Spalteninformationen einer Tabelle selektieren
Manchmal möchte man Infos über die Spaltern einer bestimmte Tabelle oder einer ganze Datenbank abrufen. Ich habe 2 Queries geschrieben mit den man diverse Informationen bekommt.
SQL Server Querys
Duplicate löschen, welche sich aus col1 und col2 zusammen setzen. Alternativ kann man natürlich auch nur mit col1 arbeiten
1 2 3 4 5 6 7 8 |
WITH CTE AS( SELECT col1,col2, RN = ROW_NUMBER()OVER(PARTITION BY col1,col2 ORDER BY col1,col2) FROM dbo.table ) DELETE FROM CTE WHERE RN > 1 SELECT * FROM dbo.table |
Update Spalte, wenn Datum Heute > dann 1 sonst 0:
1 |
UPDATE TableOne SET col1= (SELECT CASE WHEN TableOne.col2 < DATEADD(day, -1, GETDATE()) THEN 1 ELSE 0 END FROM TableOne) |
Zeilennummerierung erzeugen:
1 |
SELECT ROW_NUMBER() Over (Order by @@rowcount ASC ) As RowNumber FROM ... |
Login