خواندن رکورد رکورد یک تیبل در حلقه while

برای مثال من میخوام برای تمام کاربرانی که تو سایت امتیازشون از 100 بیشتره یه پیام بفرستم!

CREATE PROCEDURE  proc1

AS


BEGIN

-- تعریف متغیر ها--

DECLARE  @UserId  int,

         @UserName     nvarchar(255)



-- تعریف cursor--

DECLARE cursorName CURSOR FOR

-- دستور سلکت برای انتخاب کاربرانی که امتیاز بالای 100 دارند--
SELECT    UserID
      UserName

FROM      Users

 

OPEN Customer
 

FETCH cursorName INTO @UserID,
               @UserName

 

-- حلقه تکرار--

WHILE @@Fetch_Status = 0

   BEGIN

-- محل قرار دادن کد ها- مثلا فرستادن پیام--
Insert Into Mail (UserID,UserName,Subject) Values (@UserID,@UserName,'Hi,....')


-- خواندن رکورد بعدی--
   FETCH Customer INTO @iRowId,
                       @vchCustomerNmbr,
                       @vchCustomerName              

   END

CLOSE Customer

DEALLOCATE Customer

RETURN


در این کد اول یه تیبل موقتی میسازه و تیبل برگشتی از دستور سلکت رو توی اون میریزه بعد تک تک با دستور FETCH رکورد ها رو میخونه و توی متغیر ها میریزه و بقیه مسایل!!

منبع

/ 0 نظر / 25 بازدید