T-SQL Array-Variablen deklarieren

Manchmal braucht man mehr als einen Wert in einer Variable. Dann kann man diese auch als Tabelle definieren:

DECLARE @Kunde table ([Kunden-Name] varchar(50), [Kunden-Status] varchar(10))

Die Variablen kann man dann über Standard-Statements befüllen und abfragen:

INSERT INTO @Kunde VALUES ('Kunde1','aktiv');
INSERT INTO @Kunde VALUES ('Kunde2','gekündigt');
INSERT INTO @Kunde VALUES ('Kunde3','inArbeit');
SELECT * FROM @Kunde
Kunden-Name                                        Kunden-Status
-------------------------------------------------- -------------
Kunde1                                             aktiv
Kunde2                                             gekündigt
Kunde3                                             inArbeit

Verwendung der Variable in WHERE-Klausel:

SELECT * from Vertraege WHERE Kundenstatus IN (SELECT [Kunden-Status] FROM @Kunde)
Veröffentlicht in MSSQL

Datetime-Wert zerlegen

Folgende Beschreibung hab ich im entwickler-forum.de gefunden.

Über die DATEPART-Funktion kann eine SELECT-Abfrage nur bestimmte Bestandteile zurückliefern.

 DECLARE @mydatetime DATETIME
 DECLARE @myms INT
 DECLARE @myss INT
 DECLARE @mymi INT
 DECLARE @myhh INT
 DECLARE @mydd INT
 DECLARE @mymm INT
 DECLARE @myyyyy INT
 
 SET @mydatetime=getdate()
 SET @myms = DATEPART(ms,@mydatetime)
 SET @myss = DATEPART(ss,@mydatetime)
 SET @mymi = DATEPART(mi,@mydatetime)
 SET @myhh = DATEPART(hh,@mydatetime)
 SET @mydd = DATEPART(dd, @mydatetime)
 SET @mymm=DATEPART(mm,@mydatetime)
 SET @myyyyy = DATEPART(yyyy, @mydatetime)
 
 SELECT @myyyyy AS 'Year', @mymm AS 'Month', @mydd AS 'Day of month',
        @myhh AS 'Hour', @mymi AS 'Minute', @myss AS 'Second',
        @myms AS 'Millisecond'

 

Veröffentlicht in MSSQL

Rolle und Status einer Spiegel-Datenbank

Mit dem folgenden Snippet kann man sich den Status einer gespiegelten MS-SQL-Datenbank und die Rolle des aktuellen Servers anzeigen lassen:

-- Die Abfrage ist für die Serverrolle public möglich.
SELECT mirroring_role_desc AS 'Rolle', mirroring_state_desc AS 'Status'
 FROM sys.database_mirroring
 WHERE mirroring_guid IS NOT NULL
 AND database_id=(
   SELECT dbid FROM master.dbo.sysdatabases WHERE name = '<Datenbankname>'
 )

 

 

Veröffentlicht in MSSQL