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

12/03/2011

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

שייך לקטגוריה: 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 של התגובות על הרשומה הזו טרקבאק קישור

כתיבת תגובה

Fill in your details below or click an icon to log in:

WordPress.com Logo

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

Twitter picture

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

Facebook photo

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

Connecting to %s

ערכת עיצוב: Shocking Blue Green. בלוג בוורדפרס.קום.

Follow

Get every new post delivered to your Inbox.

הצטרפו אל 25 שכבר עוקבים אחריו