‏הצגת רשומות עם תוויות SYSTEM. הצג את כל הרשומות
‏הצגת רשומות עם תוויות SYSTEM. הצג את כל הרשומות

יום ראשון, 24 באוקטובר 2010

SUSER_SNAME

שלום רב,

כידוע פלטפורמת sql server מכילה פונקציות מערכות שימושיות מאוד. בטיפים הקרובים אסקור מספר פונקציות שימושיות ומעניינות.

שאלה:
ברצוני להוסיף בפרוצדורה תנאים לביצוע ע"פ המשתמש אשר מריץ את הפרוצדורה – האם זה אפשרי?
האם ניתן לקבוע ערך DEFAULT לעמודה בטבלה שמשמעו "מי ביצע את הפעולה" ?

תשובה:
פלטפורמת SQL SERVER 2005 מכילה פונקציות מערכת רבות ומגוונות, אחת הפונקציות השימושיות הינה : SUSER_SNAME.

להלן מספר יכולות הפונקציה :
1. הפונקציה מחזירה את ה- log in שמריץ את הפונקציה , לדוגמא:




2. הפונקציה יכולה לתרגם את ה- login security identification number לשם המשתמש , לדוגמא:



ניתן לשלב את הפונקציה כתנאי בתוך פרוצדורה , וניתן לשלב את הפונקציה ב- DEFAULT constraint בתוך טבלה, לדוגמא:


בהצלחה !
http://blogs.microsoft.co.il/blogs/itaib/archive/2010/10/24/suser-sname.aspx

יום רביעי, 18 בפברואר 2009

יום ראשון, 6 ביולי 2008

xp_regread

שאלה:
האם ניתן לקרוא מידע מה- registry ע"י T-SQL ?

תשובה:
כידוע פלטפורמת SQL server יכולה להתממשק עם מערכת ההפעלה ובכך לבצע פעולות שונות גם מחוץ לבסיס הנתונים, לדוגמא :
· קבלת נתוני דיסקים
· שליפת נתוני משאבים , זיכרון, cpu וכו'...
· קריאה וכתיבה ל- event viewer .
· עבודה מול קבצים וכו'...
· ועוד...

עוד יכולת שימושית הינה , התממשקות מול ה- registry.
פלטפורמת SQL server מאפשרת לנו לקרוא נתונים מול ה- registry ע"י קוד T-SQL .

על מנת לקרוא טת כמות ה- CPU בשרת , יש להריץ את הפקודה הבאה:

declare @regOutput varchar(20)

EXEC master..xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment\',
@value_name = 'NUMBER_OF_PROCESSORS',
@value = @regOutput OUTPUT

select @regOutput