הבלוג של גרי רשף

12/03/2011

לכידת פלט פרוצדורה (2)

Filed under: Uncategorized — תגיות: , — גרי רשף @ 21:12

בפוסט קודם הראתי כיצד ללכוד פלט פרוצדורה, כשהדגש היה על הפלט המופנה ללשונית ה-Messages (בתחתית צילום המסך):

clip_image002

את הפלט המופנה ללשונית ה-Results ניתן להפנות לטבלה ולשלוף ממנה לאחר מכן. למשל:

Create Table #SP_Who(spid Int,

                    ecid Int,

                    status Varchar(20),

                    loginame Sysname Null,

                    hostname Sysname Null,

                    blk Int,

                    dbname Sysname Null,

                    cmd Varchar(20),

                    request_id Int);

Go


Insert

Into #SP_Who

Exec SP_Who;

Go


Select * From #SP_Who;

Go

clip_image004

מה קורה אם בפרוצדורה מחזירה סט בן כמה עשרות עמודות ואין לנו כח ליצור ידנית טבלה?

האם ניתן לבצע משהו בסגנון Select .. Into .. שמפנה פלט של שליפה לתוך טבלה שנוצרת מעצמה?

כן:

Select *

Into #SP_Who

From OPENROWSET('SQLOLEDB','Server=MyServer;Trusted_Connection=yes;','Exec SP_Who;');

Go


Select * From #SP_Who;

Go

clip_image006

מודעות פרסומת

2 תגובות »

  1. היי גרי, זה ג'רבי
    האם ניתן להשתמש ב OPENROWSET לנושאים נוספים כמו תפיסת משתנים ל CURSOR (למרות ש CURSOR – ים ל מומלצים מבחינת ביצועים…)
    זה מצלצל לי דומה ל ROWTYPE% באורקל

    פשוט אם יש מספר משתנים לקלוט כל רשומה , במקום לכתוב משהו לא סימפטי כמו:

    FETCH NEXT FROM QUERYID_CURSOR
    INTO @A,@B,@C,@D,@E

    באורקל ניתן לכתוב משהו בסגנון:

    REC := TABLE_NAME%ROWTYPE
    FETCH NEXT FROM QUERYID_CURSOR
    INTO REC
    ואז לחסוך את כל ה @A,@B,@C,@D,@E

    האם ניתן להשתמש ב – OPENROWSET באופן דומה?
    תודה מראש…

    תגובה של אבי ג'רבי — 29/08/2011 @ 16:50

    • לדעתי לא (לגבי ה-OpenRowset)..
      אני מבין מה אתה אומר- מחברים את כל המשתנים ל"רשומה" ומפנים אליה את ה-Fetch Next. למיטב ידיעתי אין משהו כזה, אבל זה מה שמפריע לך? הרי כותבים את זה פעם אחת בפרוצדורה..

      תגובה של גרי רשף — 29/08/2011 @ 20:15


RSS feed for comments on this post. TrackBack URI

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

בלוג בוורדפרס.קום.

%d בלוגרים אהבו את זה: