VBScript split Funktion in T-SQL

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

Zeit aus einer DATETIME Spalte entfernen

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

GETDATE innerhalb einer UDF

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

Unterschied zwischen Primary Key und Unique Key

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. Darüber hinaus ist ein PrimaryKey eines… mehr »

String Truncation

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

Ersten Tag einer Woche ermitteln

Angenommen, wir definieren den Sonntag als ersten Tag der Woche SET DATEFIRST 7 , dann liefert SELECT DATEADD(DAY, 1-DATEPART(dw, GETDATE()), GETDATE()) ---------------------------------------… mehr »

Inline Split mittels CHARINDEX

Diese Frage ist auch ein Kandidat für die "Häufigste Frage". Dabei kann man sehr häufig die abstrusesten Antworten beobachten. Naturlich kann man dieses Problem mit Hilfe eines Cursors lösen. Stellt sich nur nachher die Frage, wie man das Problem des… mehr »

Anzahl von Tagen zwischen zwei Daten

USE pubs GO SELECT DATEDIFF(DAY, pubdate, GETDATE()) AS Anzahl_Tage FROM titles GO Anzahl_Tage ----------- 4761 4764 4743 4751 4764 4755 1418 4743 3665 1418 4630 4758 4646 4761 4761 4630 4761 4761 (18 row(s) affected) mehr »

Log Datei verkleinern ohne Backup zu machen

Im Bezug auf das Transaktionsprotokoll des SQL Servers scheint es eine ziemliche Unsicherheit bei den meisten Anwendern zu geben. Dabei ist dies bei weitem kein Mysterium! mehr »

Installationsobjekte identifizieren

USE MASTER GO SELECT CASE OBJECTPROPERTY(id, 'IsMSShipped') WHEN 1 THEN 'Bei Installation erzeugt' WHEN 0 THEN 'Nicht bei Installation erzeugt' END AS [Bei Installation Erzeugt] , CAST(name AS CHAR(30)) AS [name] FROM sysobjects WHERE name =… mehr »

Nicht-Unicode Spalten ermitteln

SELECT OBJECT_NAME(Id) as [Table] , name as [Column] , TYPE_NAME(xusertype) as Type FROM SysColumns WHERE TYPE_NAME(xusertype) IN ('varchar','char') AND ID IN (SELECT ID FROM SysObjects WHERE xtype = 'U') ORDER BY… mehr »

Datumsteile extrahieren

SELECT DATEPART(yy , GETDATE()) AS Jahr , DATEPART(qq , GETDATE()) AS Quartal , DATEPART(mm , GETDATE()) AS Monat , DATEPART(dd , GETDATE()) AS Tag , DATEPART(hh , GETDATE()) AS Stunden , DATEPART(mi , GETDATE()) AS Minuten , DATEPART(ss , GETDATE()) A… mehr »

Clustered Index löschen

Generell gilt, daß Indexes Datenabfragen enorm beschleunigen können. Nachteil aber ist, daß Änderungen an den Daten sich auch in Änderungen in den Indexes manifestieren, falls die entsprechenden Spalten, die von der Änderung betroffen sind, auch glei… mehr »

Systemtabelle direkt updaten

Direktes Updaten der Systemtabellen ist eine der schnellsten Methoden, um SQL Server in die Irre zu führen. Daher sollte dies nur im Notfall angewendet werden: sp_configure 'allow updates', 1 GO RECONFIGURE WITH OVERRIDE GO Unter so einem 'Notfall… mehr »

tempDB in den Arbeitsspeicher laden

In SQL 6.5 gibt es eine Einstellungen 'tempdb in RAM'. Ab Version 7 wird dies nicht mehr unterstützt. Microsoft ist der Ansicht, daß die internen Zugriffe genügend optimiert sind, um dies unnötig zu machen mehr »

IDENTITY Wert zurücksetzen

Als Einleitung bemerkt, gibt es keine 'IDENTITY' Spalte. IDENTITY ist eine Spalteneigenschaft, die man einer Spalte vom Typ Integer und/oder Decimal mit scale(0) zuordnen kann. Eine andere Möglichkeit ist TRUNCATE TABLE. Nicht empfehlenswert für permanen… mehr »

Unterschied zwischen OSQL und ISQL

ISQL.exe erkennt keine 'named instances'. Weitere Unterschiede werden in BOL aufgelistet. Für die meisten Anwendungsgebiete ist wahrscheinlich OSQL die bessere Alternative. Nicht zuletzt deshalb, weil ISQL noch mit der DB-Library arbeitet, die nicht… mehr »

Systemobjekte unsichtbar machen

Vielfach wird diese Frage gestellt, nachdem man Nicht-Administratoren den Zugang zu solchen Tools wie dem Enterprise Manager und/oder Query Analyzer gegeben hat. AFAIK, ist es nicht möglich im Enterprise Manager nur die Datenbanken anzeigen zu la… mehr »

SQL Server Version ermitteln

Eine der ersten Fragen die man beantworten muß bei Problemen, ist die Frage, wie welcher Version von SQL Server man arbeitet. Diese Information kann man auf mehreren Wegen erhalten. Oftmals muss man schnell in der Lage sein, angeben zu können, mit… mehr »