Sie wollen nach Start des SQL Server ein bestimmtes SQL Script laufen lassen, um etwa den Zeitpunkt des Starts zu protokollieren oder etwa Prüfabfragen zu starten und zu protokollieren? Dann sind Prozeduren, die automatisch nach Start des SQL Servers Dienstes gestartet werden genau das Richtige.
Vergessen Sie Startparameter oder ähnliches. Es gibt extra eine Prozedur, die wiederum andere Prozeduren für den Startup registriert: SP_PROCOPTION.
Die Syntax dazu ist sehr einfach:
USE MASTER;
GO
EXEC SP_PROCOPTION @ProcName=’NameDerProzedur’, @OptionName=’STARTUP‘, @OPtionValue=’ON‘;
GO
EXEC SP_PROCOPTION NameDerProzedur, ‚STARTUP‘, ‚ON‘;
GO
Nun gibts natürlich ein paar Bedingungen dazu:
Die so registrierten Prozeduren lassen sich natürlich auch wieder deregistrieren:
USE MASTER;
GO
EXEC SP_PROCOPTION NameDerProzedur, @OptionValue ‚OFF‘;
GO
So weit so gut. Die Ideen für was man das verwenden könnte sind manigfaltig. Vom Versenden von Mails an Datenbankbesitzer, dass die Datenbank wieder läuft, bis hin zu Systemauswertungen ist alles machbar. Hier also nur ein kleines Beispiel, wie man den Start des SQL Server protokollieren könnte:
Create database Logging;
GO
use Logging;
GO
create Table Alerts (id int identity, Kommentar varchar(4000) default ‚Server Omega starting‘, Zeit smalldatetime default getdate());
GO
Use master;
GO
Create procedure dbo.ServerLogging
as
Set NoCount on
insert into logging.dbo.Alerts (Kommentar) values (@input)
GO
Create procedure dbo.ServerLogging2
as
Set NoCount on
insert into logging.dbo.Alerts (Kommentar) values (‘****SERVERNEUSTART OMEGA*****’)
GO
–TEST
exec dbo.ServerLogging
exec dbo.ServerLogging2
select * from logging.dbo.Alerts
–Registrierung
Use master;
GO
EXEC SP_PROCOPTION ServerLogging, ‚STARTUP‘, ‚ON‘
GO
EXEC SP_PROCOPTION ServerLogging2, ‚STARTUP‘, ‚ON‘
GO
–Neustart des Server
!!net stop mssql$OMEGA /Y
!!net start mssql$Omega
–Prüfen, ob erfolgreich
select * from logging.dbo.Alerts
Würde man eine Prozedur registrieren, bei der die Bedingungen nicht erfüllt sind, würde das so aussehen:
Viel Spaß damit
In SQL Server 2016 wurde das sog. dynamic data masking eingeführt. Eine Möglichkeit Daten bei…
Seit Sharepoint Server 2007 präsentiert sich die Installation immer auf die gleiche Weise. Gerade mal,…
Es weihnachtet! Gerade bekam ich von einer Kollegin Plätzchen angeboten mit der Größe eines Diskus…
Nein, bitte nicht verwechseln: temporal tables haben nichts zu tun mit temporary tables table variables…
SQL Server 2016.. habe ich schon erwähnt, dass ich den ziemlich cool finde? Wollen wir…
Nach langer Zeit wieder mal eine Artikel von mir.. der mich besonders erfreut. SQL Server…