T-SQL Settings: LANGUAGE, Dateformat und DATEFIRST

Immer wieder wäre es schön kurzeitig andere Einstellungen zu nutzten. Speziell damit T-SQL Batches sehr unabhängig arbeiten können:

--Save the old / usual settings:
DECLARE @DATEFIRST int = @@DATEFIRST
DECLARE @LANGUAGE nvarchar(100) = @@LANGUAGE
DECLARE @DATEFORMAT nvarchar(100) = (
   select	s.date_format 
   from	sys.dm_exec_sessions s 
   where	s.session_id = @@SPID
   )
--Set new temporary Settings:
SET DATEFIRST 7;
SET DATEFORMAT mdy;
SET LANGUAGE US_ENGLISH;
…
…
--Restore the saved settings:
SET LANGUAGE @language;  /*Germany: "Deutsch" */
SET DATEFIRST @DATEFIRST;  /*Germany: "dmy" */
SET DATEFORMAT @DATEFORMAT;  /*Germany: "1" */

ACHTUNG: Variablen sind alle verloren nach jedem „GO“ – auch wenn ein GO in einem Kommentar seht ist das meist verloren!
Wie auch immer, solche Einstellungen gelten ohnehin nur in aktuellen Session.