Kategorie: "SQL Server"

Tage eines Monats

Posted on Jul 13, 2004 von in SQL Server
DECLARE @d DATETIME
SET @d = '31/01/2003 12:00:00'
SELECT
DAY(DATEADD(DAY,-1,DATEADD(MONTH,1,DATEADD(DAY,1-DAY(@d),@d)))) AS TageImMonat

TageImMonat
-----------
31

(1 row(s) affected)

Bei der Wahl des Datumsformat muss man vorsichtig sein. So funktionieren zum Beispiel:

SET @d = '20030131 12:00:00'

und

SET @d = '31.01.2003 12:00:00'

während

SET @d = '2003-01-31 12:00:00'

Server: Nachr.-Nr. 242, Schweregrad 16, Status 3, Zeile 2
Bei der Konvertierung ... char-Datentyps in ... datetime-Datentyp ... außerhalb des gültigen Bereichs.

hervorruft.

Ganze Geschichte »

Median berechnen

Posted on Jul 13, 2004 von in SQL Server

Es gibt anscheinend unterschiedliche Meinungen über die Berechnung des Median. Zum einen gibt es den 'financial' Median, der das arithmetische Mittel der beiden mittleren Werte ist, zum anderen den 'statistischen' Median, der der niedrigere (bzw. bei Gleichheit der Werte) der erste der Werte ist. In Büchern über T-SQL findet man die komplexesten Statements zur Berechnung des Median, dabei ist dieser sehr einfach mit Hilfe von TOP n PERCENT zu berechnen. Hier ist ein Beispiel zur Berechnung des 'financial' Medians:

Ganze Geschichte »

Ergebnis eines Dynamischen SQL Statements nach Ausführung weiterverwenden

Posted on Jul 13, 2004 von in SQL Server
DECLARE @stmt nvarchar(4000)
DECLARE @rowcount bigint
DECLARE @table nvarchar(255)
SET @table = 'authors'
SELECT @stmt = 'SELECT @count = COUNT(*) FROM ' + @table
EXEC sp_executesql @stmt, N' @count bigint output', @rowcount OUTPUT
IF @rowcount > 0
     BEGIN
         SELECT @rowcount AS Anzahl
     END
RETURN 

Anzahl               
-------------------- 
23

(1 row(s) affected)

Der Datumsbereich des SQL Servers

Posted on Jul 13, 2004 von in SQL Server
Select
Cast(-53690 As DateTime) As 'Erstes Datum'
, Cast(2958463.999999999 As DateTime) As 'Letztes Datum'

Erstes Datum Letztes Datum
------------------------- -------------------------
1753-01-01 00:00:00.000 9999-12-31 23:59:59.997

(1 row(s) affected)

Ganze Geschichte »

Dateiendung LDF für Logfiles

Posted on Jul 12, 2004 von in SQL Server

Die Dateiendung ist nur Konvention und kann irgendwie lauten.

Was ist wenn sa nicht Besitzer der Datenbank ist

Posted on Jul 12, 2004 von in SQL Server

Das hängt davon ab, wer verantwortlich für die Erstellung der Objekte einer Datenbank ist. Wenn dies 'sa' ist, sollten keine Probleme entstehen. Wenn ein anderer verantwortlich ist, sollte diese Datenbank auf den neuen Besitzer übertragen werden.

Wird Login Modus in der Registry abgespeichert

Posted on Jul 12, 2004 von in SQL Server

Ja, und zwar für
DEFAULT INSTANCE unter:

HKLM\Software\Microsoft\MSSQLServer\MSSQLServerLoginMode und für
NAMED INSTANCE unter:
HKLM\Software\Microsoft\Microsoft SQL Server\"Name der Instanz"\MSSQLServerLoginMode.

Werte:
0x00000001 = Nur Windows
0x00000002 = Mixed

Authentifizierungsmodus ändern

Posted on Jul 12, 2004 von in SQL Server

Eine mögliche Ursache hierfür kann sein, dass der entsprechende User Account nicht die benötigte Berechtigung besitzt, um den Registry Key zu ändern. Hier wird diese Information tatsächlich gespeichert.