מציאת כל ה-Triggers בבסיס נתונים

שלום לכולם,
לעיתים תכופות מאוד, אני יוצר Triggers בבסיסי נתונים של Sql Server. מאוד נוח לי לעבוד איתם וזה גם משפר ביצועים ופחות קריאות מהאפליקציה.
השימוש שלי בד"כ בטריגרים הוא בדברים שהאפליקציה לא צריכה "לדעת" עליהם. לדוגמא, אם אני מוחק Post מתוך בלוג של משתמש, אני אשתמש ב-Trigger על מנת למחוק את כל ה-Comments של ה-Post הזה.
כמובן שישנם עוד שימושים אבל לא ניכנס אליהם כרגע, זה לא הנושא של הPost.
בכל אופן, כשבסיסי הנתונים הופכים להיות גדולים, מאוד קשה למצוא את הטריגרים מכיוון שהם "מתחבאים" בתוך הטבלאות.
כאן ניתן למצוא את הטריגרים: (בד"כ)
לManagement Studio של Sql אין מקום מובנה שבו ניתן לראות את כל ה-Triggers כמו שניתן לראות Stored Procedures, אבל כן ניתן לכתוב Script שימצא לנו את כולם.
הנה הוא:
SELECT myTriggers.[name] TableName, Triggers.[name] TriggerName,
CASE
WHEN myTriggers.deltrig = Triggers.id  THEN 'Delete'
WHEN myTriggers.instrig = Triggers.id THEN 'Insert'
WHEN myTriggers.updtrig = Triggers.id THEN 'Update'
END 'TriggerType'
FROM sysobjects Triggers JOIN sysobjects myTriggers ON Triggers.parent_obj = myTriggers.[id] WHERE Triggers.xtype='TR'
כך תוכלו למצוא בקלות את ה-Triggers שיש לכם בכל בסיס נתונים.
כך גם אם מתכנתים אחרים צריכים לעבוד על אותו בסיס נתונים, אני ממליץ להם למצוא כך את ה-Triggers ולהבין את הלוגיקה ה"חבויה" יותר של בסיס הנתונים – בהצלחה
** נבדק על Sql 2005, Sql2000.
בהצלחה

onmouseout אמיתי ב-Javascript

כמפתחים, אנו נתקלים הרבה פעמים בכך שאנחנו צריכים לבצע פעולה מסויימת כאשר העכבר יוצא מתוך אלמנט מסויים בדף שלנו. הבעיות האמיתיות מתחילות כאשר ישנם אלמנטים חופפים או שישנם אלמנטים אחרים בתוך האלמנטים שלנו.

למה אני מתכוון?
נניח שיש לנו Div בPosition Relative ובתוכו Div אחר ב-Position Absolute.
בתוך ה-div הזה, יש לנו לצורך העניין לינקים.

אנחנו רוצים, שכאשר העכבר יוצא מה-div הזה, נסתיר אותו.

פעולה מאוד פשוטה, שהמון מאיתנו שעובדים בתחום של Web נתקלים בה.
בואו ונראה את המצב.


ה-div הצהוב הוא ה-div שלנו ב-Position:relative, ובתוכו ישנו Div בPosition Absolute.
כך נראה ה-Css של הדף שלנו.

body
{
width:100%;
}
.mainContainer
{
width:100%;
text-align:center;
}
.mainContainer .content
{
width:500px;
height:500px;
margin:auto;
background-color:Yellow;
position:relative;
}
.mainContainer .content .innerFloatingDiv
{
position:absolute;
top:0px;
left:0px;
background-color:#CCCCCC;
width:200px;
height:200px;
}

עכשיו, תרחיש פשוט, נחבר פונקציה לOnMouseOut של ה-Div האפור ונציג Alert "אתה בחוץ" כאשר אנחנו יוצאים ממנו.
כך זה נראה.
בואו ונראה מה הבעיה,

אחרי שראיתם כאן בדיוק מה הבעיה, בוא ונראה כיצד ניתן לפתור אותה בצורה קלה ביותר.
לתוך הפונקציה שלנו שמקבלת את הOnMouseOut נוסיף פרמטר שהוא בעצם האובייקט שלנו (הDiv).
נחבר את האובייקט הזה לפונקציה שתחזיר לנו True – אם העכבר באמת יצא מהגבולות של האובייקט, וFalse אם לא.

בצורה כזו
כך הפעלנו קודם את הפונקציה.

div class="innerFloatingDiv" onmouseout="displayAlertOnRollOut()"

עכשיו, אנו נפעיל אותה כך, בעקבותיה באות הפונקציות ב-Javascript.

div class="innerFloatingDiv" onmouseout="displayAlertOnRollOut(this)"

function displayAlertOnRollOut(obj)
{
if(isMouseRealyOutOfObject(obj))
{
alert('אתה בחוץ');
}
}
function isMouseRealyOutOfObject(obj)
{
if (!window.event)
return true;
var event = window.event;
var oFrom = event.fromElement;
var oTo = event.toElement;
return (obj == oFrom || obj.contains(oFrom)) && !obj.contains(oTo) && obj != oTo;
}

זה הכל,
עכשיו הפונקציה תופעל אך ורק אם באמת יצאנו בתוך הגבולות של האובייקט שלנו.
זה עובד בכל הדפדפנים.

בהצלחה!

תרגישו חופשי לומר לי אם משהו לא הלך.