alter TRIGGER [trgDatabaseCreated]
ON ALL SERVER
with execute as 'sa'
FOR CREATE_DATABASE
AS
declare @data XML
declare @message XML
SET @data=EVENTDATA()
declare @msg as nvarchar(max)
set @msg = 'Databasecreated' + @data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)') + @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)')
INSERT INTO [InterneVerwaltung].[dbo].[AllgLog] ([name],[description],xmldesc)
VALUES ('trgDatabaseCreated',@msg,@data)
--INSERT INTO InterneVerwaltung.dbo.AllgLog
--(DB_User,Event,TSQL)
--VALUES
--(GETDATE(),
--CONVERT(nvarchar(100),CURRENT_USER),
--@data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)'),
--@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)'))
exec msdb.dbo.sysmail_start_sp
Execute msdb.dbo.sp_send_dbmail
@profile_name='sqlcl1DbMail',
@recipients='erich.geierlehner@ecs.steyr.com',
@subject='databasewascreated',
@body=@msg,
@query='select top 1 * from [InterneVerwaltung].[dbo].[AllgLog] with (NOLOCK) order by created DESC';
meine Sys/Db admin & Developper Notitzen - wer Rechtschreibfehler findet darf sie behalten ... my Sys/Db Admin and developper notes - I don't care about typos
Wednesday, January 25, 2012
Thursday, August 11, 2011
asp.net Apps tracen
in der Web.config im Abschnitt system.web folgenden xml Tag (spitze Klammern hinzu)
trace enabled="true" pageOutput="true" requestLimit="20" traceMode="SortByTime" localOnly="true"
einfügen, an jeder Seite sollte nun ein Trace Abschnitt angehängt werden, eine Übersicht über alle Traces bekommt man indem man im hauptdir der Anwendung
trace.axd
aufruft (die gibt es physikalisch nicht, wird aber von asp.net für jede Anwendung bereitgestellt)
Monday, August 08, 2011
check sql agent running with tsql
if 0<(select count(*) from sysprocesses where program_name like 'SQLAgent%')
begin
print 'sql agent is running'
end
else
begin
print 'sql agent is not running'
end
begin
print 'sql agent is running'
end
else
begin
print 'sql agent is not running'
end
Friday, August 05, 2011
Datagridview auf Bindingsource an Datatable
Ereignisreihenfolge beim Hinzufügen einer neuen Zeile:
1) Bindingsource_ADddingNEw
2) Datatable_TableNewRow
3) Datagridview_UserAddedRow
wenn jemand im Datagridview auf die neue Zeile klickt, wird nicht unbedingt schon eine neue Row hinzugefügt, erst wenn jemand verscuht einen Wert einzutragen => mit Bindingsource.AddNEw() kann man händisch eine neue Row hinzufügen
1) Bindingsource_ADddingNEw
2) Datatable_TableNewRow
3) Datagridview_UserAddedRow
wenn jemand im Datagridview auf die neue Zeile klickt, wird nicht unbedingt schon eine neue Row hinzugefügt, erst wenn jemand verscuht einen Wert einzutragen => mit Bindingsource.AddNEw() kann man händisch eine neue Row hinzufügen
Saturday, July 30, 2011
LINQ und Datatables
allgemeine (untypisierte) Datatable
var res = from x in dt.AsEnumerable() select x.Field(c.ColumnName);
join zweier typisierter Datasets:
var rsInner = from s in dtSource
join c in dtComp on s.FullName equals c.FullName
where s.Nullable!=c.Nullable || s.MaxLength!=c.MaxLength || s.Type!=c.Type
select new { s.TableName, s.ColumnName,
s.Nullable, cNullAble = c.Nullable,
s.MaxLength, cMaxL = c.MaxLength,
s.Type, cType = c.Type};
var res = from x in dt.AsEnumerable() select x.Field
join zweier typisierter Datasets:
var rsInner = from s in dtSource
join c in dtComp on s.FullName equals c.FullName
where s.Nullable!=c.Nullable || s.MaxLength!=c.MaxLength || s.Type!=c.Type
select new { s.TableName, s.ColumnName,
s.Nullable, cNullAble = c.Nullable,
s.MaxLength, cMaxL = c.MaxLength,
s.Type, cType = c.Type};
Tuesday, July 26, 2011
typed Dataset Null Werte
Um Null Werte abzufragen verwendet man die IsXXXNull() Methode der typed Datarow Instanzen, um Null Werte zu schreiben die SetXXXNull() Methode , wobei XXX der Feldname ist.
z.b.:
DsCRM.tTextNmDataTable dtTextNm = new DsCRM.tTextNmDataTable();
DsCRM.tTextNmRow drTextNm = dtTextNm.NewtTextNmRow();
drTextNm.ChildId = dr.Id;
drTextNm.ParentId = (int)dt.ExtendedProperties[C.ParentId];
drTextNm.Created = DateTime.UtcNow;
drTextNm.CreatedBy = Data.WinUserName;
drTextNm.SetValidUntilNull();
drTextNm.IsValidUntilNull();
z.b.:
DsCRM.tTextNmDataTable dtTextNm = new DsCRM.tTextNmDataTable();
DsCRM.tTextNmRow drTextNm = dtTextNm.NewtTextNmRow();
drTextNm.ChildId = dr.Id;
drTextNm.ParentId = (int)dt.ExtendedProperties[C.ParentId];
drTextNm.Created = DateTime.UtcNow;
drTextNm.CreatedBy = Data.WinUserName;
drTextNm.SetValidUntilNull();
drTextNm.IsValidUntilNull();
KeyCode zum Abfragen Return / Enter
private void cbBranche_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{
}
}
{
if (e.KeyCode == Keys.Return)
{
}
}
Wednesday, July 20, 2011
DD-WRT iptables
DD-WRT ist ja eine Linux variante, daher kann man das Port Forwarding auch per ssh mittels Iptables einstellen:
iptables --list
listet alle ketten und regeln auf
mit iptables -D Kettenname Regelnr
kann eine Regel aus einer Kette wieder gelöscht werden.
z.b.:
iptables -D FORWARD 5
löscht die 5. Zeile (siehe --list) aus der FORWARD Kette (FORWARD Kette ist eine Standard Kette, die Regeln zum Weiterleiten zusammenfasst)
sehr hilfreich, wenn man z.b. aufs Webinterface nicht mehr zugreifen kann, da man Port 80 wo anders hin verbogen hat mittels Port Forward ...
aus genaueres zu ipttables:
Regeln
Mit einer Regel wird entschieden was mit einem Paket passieren soll. Jede besitzt bestimmte Parameter nach denen sie überprüft ob die Informationen eines Paketes auf sie zutreffen. Wenn die Parameter zutreffend sind, wird das Paket meist an ein neues Ziel verwiesen oder es wird eine Methode angewandt. Für die Bearbeitung der Pakete gibt es mehrere Ziele und Methoden (policy). Häufig benutzte sind:
ACCEPT: das Paket kann passieren
REJECT: das Paket wird zurückgewiesen und ein Fehlerpaket wird gesendet
LOG: schreibt einen Eintrag in die syslog
DROP: das Paket wird ignoriert und keine Antwort gesendet
REDIRECT: die Ziel-Adresse des Paketes wird hiermit so verändert, dass es zum lokalen Rechner gesendet wird
MASQUERADE: die Quell-Adresse des Paketes wird durch die IP-Adresse der Schnittstelle ersetzt, auf dem es den Rechner verlässt
Regeln sind die Glieder der Kette.
Ketten
Die Ketten sind eine Sammlung von Regeln. D.h. das jede Kette mehrere Regeln besitzen kann um ein Paket durchzulassen oder zu blockieren. Es sind fünf Typen von Standardketten vorhanden. Manche dieser Ketten werden von allen Paketen und einige nur, je nachdem welches Ziel sie haben, durchlaufen. Die Regeln einer Kette werden nacheinander abgearbeitet und wenn eine zutrifft, ist die Bearbeitung in dieser Kette beendet (es gibt Ausnahmen):
PREROUTING: alle Pakete kommen hier durch bevor eine Routing-Entscheidung getroffen wird
FORWARD: für alle Pakete, die von der einen zu einer anderen Netzwerkschnittstelle weitergeleitet werden - also keine Pakete die an einen lokalen Dienst gerichtet sind
INPUT: für Pakete die über eine Schnittstelle hereinkommen und einen Dienst auf dem Rechner ansprechen
OUTPUT: für die über eine Schnittstelle herausgehenden Pakete, die von einem lokalen Dienst kommen
POSTROUTING: alle Pakete kommen am Ende der Verarbeitung hier durch
Die Ketten INPUT, FORWARD und OUTPUT besitzen immer eine Standardregel. Diese wird dann angewandt, wenn keine der in der jeweiligen Kette vorhandenen Regel zutrifft oder keine Regel vorhanden ist. In den Ketten PREROUTING und POSTROUTING können nur Pakete manipuliert (mangle und/oder nat), nicht jedoch gefiltert werden. Zu den vorhandenen Ketten kann man noch benutzerdefinierte Ketten erstellen. Dazu kommen wir jedoch erst später.
Tabellen
Die Art der Verarbeitung von Netzwerkpaketen ist in verschiedene Tabellen unterteilt. iptables besitzt standardmäßig drei Tabellen: mangle, nat und filter. Die Tabelle mangle (übersetzt: zerhauen) ermöglicht es dem Kernel, Daten im Paket-Header zu verändern. NAT wird benutzt um interne und externe IP-Adressen zu übersetzen (= Network Adress Translation). Regeln in dieser Tabelle ändern die IP und/oder den Port des Ziels. Die Tabelle filter prüft alle für die Firewall ankommenden Pakete und entscheidet ob sie durchgelassen oder geblockt werden.
Jede dieser Tabellen besitzt nun mehrere Ketten:
mangle (Paketmanipulationen): enthält alle Ketten
nat (Network Adress Translation): enthält die Ketten PREROUTING, OUTPUT und POSTROUTING
filter (Paketfilter): enthält die Ketten FORWARD, INPUT und OUTPUT
iptables --list
listet alle ketten und regeln auf
mit iptables -D Kettenname Regelnr
kann eine Regel aus einer Kette wieder gelöscht werden.
z.b.:
iptables -D FORWARD 5
löscht die 5. Zeile (siehe --list) aus der FORWARD Kette (FORWARD Kette ist eine Standard Kette, die Regeln zum Weiterleiten zusammenfasst)
sehr hilfreich, wenn man z.b. aufs Webinterface nicht mehr zugreifen kann, da man Port 80 wo anders hin verbogen hat mittels Port Forward ...
aus genaueres zu ipttables:
Regeln
Mit einer Regel wird entschieden was mit einem Paket passieren soll. Jede besitzt bestimmte Parameter nach denen sie überprüft ob die Informationen eines Paketes auf sie zutreffen. Wenn die Parameter zutreffend sind, wird das Paket meist an ein neues Ziel verwiesen oder es wird eine Methode angewandt. Für die Bearbeitung der Pakete gibt es mehrere Ziele und Methoden (policy). Häufig benutzte sind:
ACCEPT: das Paket kann passieren
REJECT: das Paket wird zurückgewiesen und ein Fehlerpaket wird gesendet
LOG: schreibt einen Eintrag in die syslog
DROP: das Paket wird ignoriert und keine Antwort gesendet
REDIRECT: die Ziel-Adresse des Paketes wird hiermit so verändert, dass es zum lokalen Rechner gesendet wird
MASQUERADE: die Quell-Adresse des Paketes wird durch die IP-Adresse der Schnittstelle ersetzt, auf dem es den Rechner verlässt
Regeln sind die Glieder der Kette.
Ketten
Die Ketten sind eine Sammlung von Regeln. D.h. das jede Kette mehrere Regeln besitzen kann um ein Paket durchzulassen oder zu blockieren. Es sind fünf Typen von Standardketten vorhanden. Manche dieser Ketten werden von allen Paketen und einige nur, je nachdem welches Ziel sie haben, durchlaufen. Die Regeln einer Kette werden nacheinander abgearbeitet und wenn eine zutrifft, ist die Bearbeitung in dieser Kette beendet (es gibt Ausnahmen):
PREROUTING: alle Pakete kommen hier durch bevor eine Routing-Entscheidung getroffen wird
FORWARD: für alle Pakete, die von der einen zu einer anderen Netzwerkschnittstelle weitergeleitet werden - also keine Pakete die an einen lokalen Dienst gerichtet sind
INPUT: für Pakete die über eine Schnittstelle hereinkommen und einen Dienst auf dem Rechner ansprechen
OUTPUT: für die über eine Schnittstelle herausgehenden Pakete, die von einem lokalen Dienst kommen
POSTROUTING: alle Pakete kommen am Ende der Verarbeitung hier durch
Die Ketten INPUT, FORWARD und OUTPUT besitzen immer eine Standardregel. Diese wird dann angewandt, wenn keine der in der jeweiligen Kette vorhandenen Regel zutrifft oder keine Regel vorhanden ist. In den Ketten PREROUTING und POSTROUTING können nur Pakete manipuliert (mangle und/oder nat), nicht jedoch gefiltert werden. Zu den vorhandenen Ketten kann man noch benutzerdefinierte Ketten erstellen. Dazu kommen wir jedoch erst später.
Tabellen
Die Art der Verarbeitung von Netzwerkpaketen ist in verschiedene Tabellen unterteilt. iptables besitzt standardmäßig drei Tabellen: mangle, nat und filter. Die Tabelle mangle (übersetzt: zerhauen) ermöglicht es dem Kernel, Daten im Paket-Header zu verändern. NAT wird benutzt um interne und externe IP-Adressen zu übersetzen (= Network Adress Translation). Regeln in dieser Tabelle ändern die IP und/oder den Port des Ziels. Die Tabelle filter prüft alle für die Firewall ankommenden Pakete und entscheidet ob sie durchgelassen oder geblockt werden.
Jede dieser Tabellen besitzt nun mehrere Ketten:
mangle (Paketmanipulationen): enthält alle Ketten
nat (Network Adress Translation): enthält die Ketten PREROUTING, OUTPUT und POSTROUTING
filter (Paketfilter): enthält die Ketten FORWARD, INPUT und OUTPUT
Monday, July 18, 2011
Allgemeines zu ProcMon Sysinternals
Buttonleiste:
Registry, File, Network und Threadbutton (ganz rechts) filtern die Erwignisse die angezeigt werden
Processtree:
wininit.exe
->services.exe hat alle Services gestartet
->lsass.exe ist der lokale Sicherheit-Authentifizierungsserver. Er überprüft die Gültigkeit der Benutzeranmeldung für Ihren PC oder Server.
->LSM.exe ist der lokale Sitzungs-Manager-Dienst in Microsoft Windows
Csrss ist kurz für Client/Server Run-Time Subsystem
winlogon.exe ermöglicht das An- und Abmelden von Benutzer und läuft deswegen ständig im Hintergrund mit. Es überprüft auch den Windows Aktivierungscode. http://www.neuber.com/taskmanager/deutsch/prozess/winlogon.exe.html
shstat.exe ist eine Anwendung, die McAfee Prozess-zuprozeß communications.
Registry, File, Network und Threadbutton (ganz rechts) filtern die Erwignisse die angezeigt werden
Processtree:
wininit.exe
->services.exe hat alle Services gestartet
->lsass.exe ist der lokale Sicherheit-Authentifizierungsserver. Er überprüft die Gültigkeit der Benutzeranmeldung für Ihren PC oder Server.
->LSM.exe ist der lokale Sitzungs-Manager-Dienst in Microsoft Windows
Csrss ist kurz für Client/Server Run-Time Subsystem
winlogon.exe ermöglicht das An- und Abmelden von Benutzer und läuft deswegen ständig im Hintergrund mit. Es überprüft auch den Windows Aktivierungscode. http://www.neuber.com/taskmanager/deutsch/prozess/winlogon.exe.html
shstat.exe ist eine Anwendung, die McAfee Prozess-zuprozeß communications.
Thursday, July 14, 2011
für jede Tabelle im Sql Server etwas ausführen
z.b. Count(*)
EXEC SP_MSFOREACHTABLE 'select "?", count(*) from ?'
EXEC SP_MSFOREACHTABLE 'select "?", count(*) from ?'
NameValueCollection in Dictionary konvertieren
static public Dictionary NamValCol2Dict(NameValueCollection nvc)
{
Dictionary temp = new Dictionary();
foreach (string key in nvc)
{
temp.Add(key, nvc[key]);
}
return temp;
}
{
Dictionary
foreach (string key in nvc)
{
temp.Add(key, nvc[key]);
}
return temp;
}
mittels Reflection Name / Value Properties eines bel. Objektes zurückgeben
private Dictionary GetPropNameAndValuesAsDict(object o)
{
Dictionary d = new Dictionary();
foreach (PropertyInfo pi in o.GetType().GetProperties())
{
string s = "";
try
{
object oVal = pi.GetValue(o, null);
if (null != oVal) s = oVal.ToString();
}
catch (Exception ex)
{
s = ex.Message;
}
d.Add(pi.Name, s);
}
return d;
}
Umwandeln des obigen Dictonaries d in Stringliste:
List sl = (from de in d select de.Key + " = "+de.Value).ToList();
bzw. als Stringlist
private List GetPropNameAndValues(object o)
{
List sl = new List();
foreach (PropertyInfo pi in o.GetType().GetProperties())
{
string s = pi.Name;
try
{
object oVal = pi.GetValue(o, null);
if (null != oVal) s += "=" + oVal.ToString();
}
catch (Exception ex)
{
s += ":" + ex.Message;
}
sl.Add(s);
}
return sl;
}
{
Dictionary
foreach (PropertyInfo pi in o.GetType().GetProperties())
{
string s = "";
try
{
object oVal = pi.GetValue(o, null);
if (null != oVal) s = oVal.ToString();
}
catch (Exception ex)
{
s = ex.Message;
}
d.Add(pi.Name, s);
}
return d;
}
Umwandeln des obigen Dictonaries d in Stringliste:
List
bzw. als Stringlist
private List
{
List
foreach (PropertyInfo pi in o.GetType().GetProperties())
{
string s = pi.Name;
try
{
object oVal = pi.GetValue(o, null);
if (null != oVal) s += "=" + oVal.ToString();
}
catch (Exception ex)
{
s += ":" + ex.Message;
}
sl.Add(s);
}
return sl;
}
Sql Server Datum und Sprache
select * from sys.syslanguages
set language 'English'
select @@Language
select GetDate()
set language 'Deutsch'
select @@Language
select GetDate()
set language 'English'
select @@Language
select GetDate()
set language 'Deutsch'
select @@Language
select GetDate()
Wednesday, July 13, 2011
Execute Rechte auf alle Stored Procedures / Execute privileg for all stored procedures
z.b. durch erzeugen einer Execute Rolle
for example create a role and assign exeute rights
CREATE ROLE db_execute
GRANT EXECUTE TO db_execute
=> jedes Mitglied der Rolle db_execute kann SPs usw. ausführen - hinzufügen z.b. mittels:
exec sp_addrolemember db_execute, username
for example create a role and assign exeute rights
CREATE ROLE db_execute
GRANT EXECUTE TO db_execute
=> jedes Mitglied der Rolle db_execute kann SPs usw. ausführen - hinzufügen z.b. mittels:
exec sp_addrolemember db_execute, username
IIS hostheader
Um mehrerer Websiten mit derselben IP und Port aber unterschiedlichem Hostname betreiben zu können muß man in den Bindings (IIS7) den hostname genauso eintragen, wie er später in der URL eingegeben wird. der DNS Server muß zunächst dafür sorgen, dass dieser hostname auch zum IIS Server geleitet wird (CNAME Einträge auf den Original DNS Eintrag des Servers - A Record), der IIS Server sucht dann in den Hostheaders die richtige Site raus ...
Monday, July 04, 2011
asp.net 4.0 deployment on IIS 7.0
Beim Versuch eine asp.net 4.0 app auf einen default configuriertem iis7 zu intallieren erhielt ich:
HTTP Error 404.17 - Not Found The requested content appears to be script and will not be served by the static file handler.
das Problem war, dass ASP.NET 4.0 Framework war zwar am Rechner installiert => daher konnte man in den AppPools auch einstellen, dass der AppPool unter 4.0 laufen soll, doch man muß es auch noch als (ehemals isapi) handler installieren, damit aspx seiten damit abgehandelt werden können mittels:http://www.blogger.com/img/blank.gif
c:\windows\microsoft.net\framework\v4.0….\aspnet_regiis –i
unter iis7.0 ist auch der server kern in asp.net entwickelt, daher sind keine isapi.dlls wie unter iis60 und 5.0 nötig, um bestimmte dateiarten wie aspx zu handeln, sondern das kann gleich im kern gehandelt werden.
iis7 architectur
HTTP Error 404.17 - Not Found The requested content appears to be script and will not be served by the static file handler.
das Problem war, dass ASP.NET 4.0 Framework war zwar am Rechner installiert => daher konnte man in den AppPools auch einstellen, dass der AppPool unter 4.0 laufen soll, doch man muß es auch noch als (ehemals isapi) handler installieren, damit aspx seiten damit abgehandelt werden können mittels:http://www.blogger.com/img/blank.gif
c:\windows\microsoft.net\framework\v4.0….\aspnet_regiis –i
unter iis7.0 ist auch der server kern in asp.net entwickelt, daher sind keine isapi.dlls wie unter iis60 und 5.0 nötig, um bestimmte dateiarten wie aspx zu handeln, sondern das kann gleich im kern gehandelt werden.
iis7 architectur
Friday, July 01, 2011
logfile verkleinern
Um das Logfile zu verkleinern ist es günstig, ein Logbackup zu machen und dann zu shrinken:
USE [dbname]
GO
DBCC SHRINKFILE (N'logfilename logisch' , 1000)
GO
oder im ssms in Datenbank-Tasks auf Verkleinern, Files gehen
USE [dbname]
GO
DBCC SHRINKFILE (N'logfilename logisch' , 1000)
GO
oder im ssms in Datenbank-Tasks auf Verkleinern, Files gehen
z.b.:
DBCC SHRINKFILE ('CRM_log',3000)
Tuesday, June 28, 2011
SqlAgentAliveJob
Verwendung von sp_send_dbmail um sich vom SqlAgent mittels täglichem Job eine Alive Mail schicken zu lassen:
declare @x as nvarchar(max)
set @x=@@SERVERNAME +' sql agent is alive at '+CONVERT(nvarchar(max),GETDATE(),121)
--select @x
exec msdb.dbo.sp_send_dbmail
@profile_name='dbm',
@recipients='x@y.z',
@subject=@x,
@body='Diese Nachricht wurde von Sql Agent Job SqlAgentIsAliveMail generiert - bitte nicht beantworten'
declare @x as nvarchar(max)
set @x=@@SERVERNAME +' sql agent is alive at '+CONVERT(nvarchar(max),GETDATE(),121)
--select @x
exec msdb.dbo.sp_send_dbmail
@profile_name='dbm',
@recipients='x@y.z',
@subject=@x,
@body='Diese Nachricht wurde von Sql Agent Job SqlAgentIsAliveMail generiert - bitte nicht beantworten'
Monday, June 27, 2011
nützliche SqlServerAlerts
folgendes Script erzeugt im SqlAgent unter Alerts für alle genützen Severities Alerts - wenn man einen Operator definiert kann dieser dann benachrichtigt werden (Properties, Response). Vorraussetzung unter SqlAgentProperties ist unter AlertSystem EnableMailProfile eingestellt ...
@include_event_description_in=1 => alert text wird in emails mitgeschickt
Gleich dannach ist ein Script, dass Email Notifications für alle mit Script 1 erzeugten Alerts erstellt, wobei der Operatorname ganz am Anfang des Scripts im Set richtig eingestellt werden muss - kann man aber auch direkt beim Operator im ssms einstellen
USE [msdb]
GO
/****** Object: Alert [001misc] Script Date: 06/27/2011 16:10:04 ******/
EXEC msdb.dbo.sp_add_alert @name=N'001misc',
@message_id=0,
@severity=1,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** 2-6 Reserved *****************************/
/****** Object: Alert [007notifyStatus] Script Date: 06/27/2011 16:12:16 ******/
EXEC msdb.dbo.sp_add_alert @name=N'007notifyStatus',
@message_id=0,
@severity=7,
@enabled=1,
@delay_between_responses=0,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [008UserInterventionRequired] Script Date: 06/27/2011 16:27:57 ******/
EXEC msdb.dbo.sp_add_alert @name=N'008UserInterventionRequired',
@message_id=0,
@severity=8,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [009UserDefined] Script Date: 06/27/2011 16:27:57 ******/
EXEC msdb.dbo.sp_add_alert @name=N'009UserDefined',
@message_id=0,
@severity=9,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [010Info] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'010Info',
@message_id=0,
@severity=10,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [011DbObjectNotFound] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'011DbObjectNotFound',
@message_id=0,
@severity=11,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/** 12 unused ******/
/****** Object: Alert [013UserTransactionSyntaxError] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'013UserTransactionSyntaxError',
@message_id=0,
@severity=13,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [014lowPermission] Script Date: 06/27/2011 16:25:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'014lowPermission',
@message_id=0,
@severity=14,
@enabled=1,
@delay_between_responses=0,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
/****** Object: Alert [015SqlSyntaxError] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'015SqlSyntaxError',
@message_id=0,
@severity=15,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [016MiscUserError] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'016MiscUserError',
@message_id=0,
@severity=16,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [017LowResources] Script Date: 06/27/2011 16:12:49 ******/
EXEC msdb.dbo.sp_add_alert @name=N'017LowResources',
@message_id=0,
@severity=17,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [018InternalError] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'018InternalError',
@message_id=0,
@severity=18,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [019FatalResource] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'019FatalResource',
@message_id=0,
@severity=19,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [020FatalCurProc] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'020FatalCurProc',
@message_id=0,
@severity=20,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [021FatalDbProc] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'021FatalDbProc',
@message_id=0,
@severity=21,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [022FatalTableIntegr] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'022FatalTableIntegr',
@message_id=0,
@severity=22,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [023FatalDbIntegr] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'023FatalDbIntegr',
@message_id=0,
@severity=23,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [024FatalHardwareError] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'024FatalHardwareError',
@message_id=0,
@severity=24,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [025FatalError] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'025FatalError',
@message_id=0,
@severity=25,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/**************************** UND NOTIFICATIONS EINSTELLEN, OPERATOR NAME RICHTIGSTELLEN !!!! ****************************************************************
USE [msdb]
GO
DECLARE @Operator as nvarchar(MAX)
SET @Operator='operatorname';
EXEC dbo.sp_add_notification @alert_name = N'011DbObjectNotFound',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [001misc] Script Date: 06/27/2011 16:10:04 ******/
EXEC dbo.sp_add_notification @alert_name = N'001misc',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** 2-6 Reserved *****************************/
/****** Object: Alert [007notifyStatus] Script Date: 06/27/2011 16:12:16 ******/
EXEC dbo.sp_add_notification @alert_name =N'007notifyStatus',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [008UserInterventionRequired] Script Date: 06/27/2011 16:27:57 ******/
EXEC dbo.sp_add_notification @alert_name =N'008UserInterventionRequired',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [009UserDefined] Script Date: 06/27/2011 16:27:57 ******/
EXEC dbo.sp_add_notification @alert_name =N'009UserDefined',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [010Info] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'010Info',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [011DbObjectNotFound] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'011DbObjectNotFound',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/** 12 unused ******/
/****** Object: Alert [013UserTransactionSyntaxError] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'013UserTransactionSyntaxError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [014lowPermission] Script Date: 06/27/2011 16:25:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'014lowPermission',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [015SqlSyntaxError] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'015SqlSyntaxError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [016MiscUserError] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'016MiscUserError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [017LowResources] Script Date: 06/27/2011 16:12:49 ******/
EXEC dbo.sp_add_notification @alert_name =N'017LowResources',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [018InternalError] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'018InternalError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [019FatalResource] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'019FatalResource',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [020FatalCurProc] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'020FatalCurProc',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [021FatalDbProc] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'021FatalDbProc',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [022FatalTableIntegr] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'022FatalTableIntegr',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [023FatalDbIntegr] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'023FatalDbIntegr',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [024FatalHardwareError] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'024FatalHardwareError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [025FatalError] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'025FatalError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
GO
@include_event_description_in=1 => alert text wird in emails mitgeschickt
Gleich dannach ist ein Script, dass Email Notifications für alle mit Script 1 erzeugten Alerts erstellt, wobei der Operatorname ganz am Anfang des Scripts im Set richtig eingestellt werden muss - kann man aber auch direkt beim Operator im ssms einstellen
USE [msdb]
GO
/****** Object: Alert [001misc] Script Date: 06/27/2011 16:10:04 ******/
EXEC msdb.dbo.sp_add_alert @name=N'001misc',
@message_id=0,
@severity=1,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** 2-6 Reserved *****************************/
/****** Object: Alert [007notifyStatus] Script Date: 06/27/2011 16:12:16 ******/
EXEC msdb.dbo.sp_add_alert @name=N'007notifyStatus',
@message_id=0,
@severity=7,
@enabled=1,
@delay_between_responses=0,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [008UserInterventionRequired] Script Date: 06/27/2011 16:27:57 ******/
EXEC msdb.dbo.sp_add_alert @name=N'008UserInterventionRequired',
@message_id=0,
@severity=8,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [009UserDefined] Script Date: 06/27/2011 16:27:57 ******/
EXEC msdb.dbo.sp_add_alert @name=N'009UserDefined',
@message_id=0,
@severity=9,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [010Info] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'010Info',
@message_id=0,
@severity=10,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [011DbObjectNotFound] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'011DbObjectNotFound',
@message_id=0,
@severity=11,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/** 12 unused ******/
/****** Object: Alert [013UserTransactionSyntaxError] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'013UserTransactionSyntaxError',
@message_id=0,
@severity=13,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [014lowPermission] Script Date: 06/27/2011 16:25:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'014lowPermission',
@message_id=0,
@severity=14,
@enabled=1,
@delay_between_responses=0,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
/****** Object: Alert [015SqlSyntaxError] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'015SqlSyntaxError',
@message_id=0,
@severity=15,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [016MiscUserError] Script Date: 06/27/2011 16:13:02 ******/
EXEC msdb.dbo.sp_add_alert @name=N'016MiscUserError',
@message_id=0,
@severity=16,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [017LowResources] Script Date: 06/27/2011 16:12:49 ******/
EXEC msdb.dbo.sp_add_alert @name=N'017LowResources',
@message_id=0,
@severity=17,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [018InternalError] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'018InternalError',
@message_id=0,
@severity=18,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [019FatalResource] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'019FatalResource',
@message_id=0,
@severity=19,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [020FatalCurProc] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'020FatalCurProc',
@message_id=0,
@severity=20,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [021FatalDbProc] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'021FatalDbProc',
@message_id=0,
@severity=21,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [022FatalTableIntegr] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'022FatalTableIntegr',
@message_id=0,
@severity=22,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [023FatalDbIntegr] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'023FatalDbIntegr',
@message_id=0,
@severity=23,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [024FatalHardwareError] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'024FatalHardwareError',
@message_id=0,
@severity=24,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/****** Object: Alert [025FatalError] Script Date: 06/27/2011 16:10:21 ******/
EXEC msdb.dbo.sp_add_alert @name=N'025FatalError',
@message_id=0,
@severity=25,
@enabled=1,
@delay_between_responses=3600,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
/**************************** UND NOTIFICATIONS EINSTELLEN, OPERATOR NAME RICHTIGSTELLEN !!!! ****************************************************************
USE [msdb]
GO
DECLARE @Operator as nvarchar(MAX)
SET @Operator='operatorname';
EXEC dbo.sp_add_notification @alert_name = N'011DbObjectNotFound',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [001misc] Script Date: 06/27/2011 16:10:04 ******/
EXEC dbo.sp_add_notification @alert_name = N'001misc',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** 2-6 Reserved *****************************/
/****** Object: Alert [007notifyStatus] Script Date: 06/27/2011 16:12:16 ******/
EXEC dbo.sp_add_notification @alert_name =N'007notifyStatus',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [008UserInterventionRequired] Script Date: 06/27/2011 16:27:57 ******/
EXEC dbo.sp_add_notification @alert_name =N'008UserInterventionRequired',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [009UserDefined] Script Date: 06/27/2011 16:27:57 ******/
EXEC dbo.sp_add_notification @alert_name =N'009UserDefined',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [010Info] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'010Info',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [011DbObjectNotFound] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'011DbObjectNotFound',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/** 12 unused ******/
/****** Object: Alert [013UserTransactionSyntaxError] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'013UserTransactionSyntaxError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [014lowPermission] Script Date: 06/27/2011 16:25:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'014lowPermission',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [015SqlSyntaxError] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'015SqlSyntaxError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [016MiscUserError] Script Date: 06/27/2011 16:13:02 ******/
EXEC dbo.sp_add_notification @alert_name =N'016MiscUserError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [017LowResources] Script Date: 06/27/2011 16:12:49 ******/
EXEC dbo.sp_add_notification @alert_name =N'017LowResources',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [018InternalError] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'018InternalError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [019FatalResource] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'019FatalResource',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [020FatalCurProc] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'020FatalCurProc',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [021FatalDbProc] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'021FatalDbProc',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [022FatalTableIntegr] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'022FatalTableIntegr',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [023FatalDbIntegr] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'023FatalDbIntegr',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [024FatalHardwareError] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'024FatalHardwareError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
/****** Object: Alert [025FatalError] Script Date: 06/27/2011 16:10:21 ******/
EXEC dbo.sp_add_notification @alert_name =N'025FatalError',
@operator_name = @Operator,
@notification_method = 1 ; -- 1 = Email
GO
Thursday, May 19, 2011
COM
Komponenten werden mit regsvr32.exe registriert => in der Registry wird unter HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8.......-AE99-4A26-A9A8-B847F8C70629}\InprocServer32
der Pfad zum Executeable abgelegt.
unter HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8......-AA99-4A26-A9A8-B847F8C70629}\VersionIndependentProgID wird der eindeutige COM NAme abgelegt, unter dem dann z.b. mittels vbs:
Set oChecker=CreateObject("eindeutiger Name") das Objekt kreiert werden kann.
OLECHAR* BSTR : hat Längeninfo in den ersten zwei bytes und end marke ! _> daher immer mit SysAllocString initialisieren, da wird die richtige Länge gleich eingetragen
der Pfad zum Executeable abgelegt.
unter HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8......-AA99-4A26-A9A8-B847F8C70629}\VersionIndependentProgID wird der eindeutige COM NAme abgelegt, unter dem dann z.b. mittels vbs:
Set oChecker=CreateObject("eindeutiger Name") das Objekt kreiert werden kann.
OLECHAR* BSTR : hat Längeninfo in den ersten zwei bytes und end marke ! _> daher immer mit SysAllocString initialisieren, da wird die richtige Länge gleich eingetragen
Subscribe to:
Posts (Atom)