نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل در ساخت جدول در SP و استفاد از EXEC

  1. #1

    مشکل در ساخت جدول در SP و استفاد از EXEC

    با سلام دوستان....
    من کد زیر رو نوشتم در واقع من قصد دارم با این کد اطلاعاتی رو از جدولی بگیرم و یک جدول دیگه درست کنم که نام اون جدول به صورت پارامتری گرفته میشود.
    که با دستور EXEC اون جدول ساخته میشود.
    و بعد یک ستون به اون جدول اضافه میشه که در آخر بر اساس اون ستون قراره که من دستور SELECT قرار است اجرا شود.
    اما عجیب اینجاست که وقتی در دستور SELECT از * استفاده میشود ستون اضافه شده نمایش داده میشود اما اگر از نام اون ستون در دستور WHERE استفاده شود آن ستون را نمیشناسد.
    من کد رو در زیر میارم دقت کنید اگر مشکل من رو حل کنید و راهنمائیم کنید ممنون میشم.


    CREATE PROCEDURE Custom_Paging
    (
    @CurrentPage int,
    @PageSize int,
    @Table_Name nvarchar(50),
    @TotalRecords int OUTPUT
    )
    AS
    -- Turn off count return.
    Set NoCount On

    -- Declare variables.
    Declare @FirstRec int
    Declare @LastRec int

    -- Initialize variables.
    Set @FirstRec = (@CurrentPage - 1) * @PageSize
    Set @LastRec = (@CurrentPage * @PageSize + 1)

    -- Create a temp table to hold the current page of data
    -- Add an ID column to count the records
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TempCustom]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[TempCustom]
    EXEC('SELECT * INTO TempCustom FROM ' + @Table_Name)
    if @@ERROR = 0
    BEGIN
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TempCustom]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    ALTER TABLE TempCustom ADD TTID Bigint IDENTITY (1, 1) PRIMARY KEY

    --Complete Proc Return Tables and TotalRow Count
    SELECT @TotalRecords = COUNT(*) FROM TempCustom
    SELECT * FROM TempCustom WHERE TTID > @FirstRec AND TTID < @LastRec
    END


    یک نکته دیگر اینکه وقتی با دستور EXEC طبق کد بالا اگر بخواهم جدول را از نوع موقتی بسازم به محض ساخته شدن جدول از بین میرود و گد دیگر جدول موقتی را اصلا تشخیص نمیدهد.
    اشکال از کجاست؟
    با تشکر از راهنمایی شما.

  2. #2
    خوب خودم یافتم جوابو
    میگم که شاید بعضی ها ندونند بفهمن
    در یک SP که جدولی دستکاری میشه نمیشه از نتایج دستکاری در اون جدول در همون دسته فایل نمیشه استفاده کرد...
    و من مجبور شدم این پروسیجرو بشکنم و دو تاش کنم....
    ======================================
    الان چند دفعه هست که برام مشکلی پیش میاد میرم چند روز خودم دنبالش میگردم وقتی پیداش نمیکنم میام میپرسم و به محض اینکه میپرسم خودم جوابشو پیدا میکنم...خیلی باحاله ها!!!!

  3. #3
    انجام این کار در SQL Server 2000 همونطور که میدونید پر زحمت هستش، اگر احیانا در SQL Server 2005 قصد انجام این کار رو داشتید، از ROW_NUMBER استفاده کنید

  4. #4
    کاربر دائمی آواتار Kamyar.Kimiyabeigi
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    1,276
    با اجازه استاد عزبز آقای ثباتی
    در ضمن شما وقتی در sp یک temp table میسازید زمانی که exec میکنید session شما بسته میشه و در اصل دیگه به اون temo table دسترسی ندارید
    موفق باشید

  5. #5
    نقل قول نوشته شده توسط white fox
    خوب خودم یافتم جوابو
    میگم که شاید بعضی ها ندونند بفهمن
    در یک SP که جدولی دستکاری میشه نمیشه از نتایج دستکاری در اون جدول در همون دسته فایل نمیشه استفاده کرد...
    و من مجبور شدم این پروسیجرو بشکنم و دو تاش کنم....
    ======================================
    الان چند دفعه هست که برام مشکلی پیش میاد میرم چند روز خودم دنبالش میگردم وقتی پیداش نمیکنم میام میپرسم و به محض اینکه میپرسم خودم جوابشو پیدا میکنم...خیلی باحاله ها!!!!
    میدونی چرا ؟
    به خاطر اینکه پیدا کردن جواب یه سوال 10 درصد کل کاره و 90 درصد بقیه طرح کردن درست سواله و چون شما سوالتون رو در اینجا مینویسید در حقیقت مو به مو اونو تحلیل میکنید تا دیگران بفهمند وقتی اینجوری میشه و بدلیل اینکه مغز شما و ناخودآگاه شما هم درگیر این مسئله بوده و با این کار دقیقا به خودتون کمک میکنید که این پازل به درستی کنار هم چیده بشه

تاپیک های مشابه

  1. Exec ('dbo.MyFun')I> چرا غیر قابل استفاده است؟
    نوشته شده توسط کورش پدرام در بخش SQL Server
    پاسخ: 3
    آخرین پست: دوشنبه 06 آبان 1387, 17:02 عصر
  2. استفاده از نتایج Exec در Select
    نوشته شده توسط Saeed.Elmi در بخش SQL Server
    پاسخ: 17
    آخرین پست: سه شنبه 30 مرداد 1386, 10:09 صبح
  3. مشکل در EXEC کرن
    نوشته شده توسط ealireza در بخش SQL Server
    پاسخ: 2
    آخرین پست: دوشنبه 18 تیر 1386, 23:13 عصر
  4. پاسخ: 7
    آخرین پست: دوشنبه 09 آذر 1383, 16:23 عصر
  5. چگونه می توان دستور exec را در function اجرا کرد؟
    نوشته شده توسط mhd78 در بخش SQL Server
    پاسخ: 1
    آخرین پست: پنج شنبه 05 آذر 1383, 20:33 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •