PDA

View Full Version : TempTables



bmanfy
یک شنبه 16 اسفند 1388, 14:12 عصر
سلام دوستان .
ممکنه بگید این سوال جاش اینجا نیست و باید تو تاپیک ها Sql مطرح میشد .
اما حقیقتش اونجا کسی نیست جواب بده . و دوستان دلفی کار هم حتما این سوال رومیدونید.

فرض کنید هدف ویرایش اطلاعات یک فاکتور فروشه .
خوب برای این کار باید بیام اطلاعات رو درون یک جدول موقت قرار بدم . تغییرات رو اعمال کنم . و در انتها اطلاعات قبلی رو از جدول اصلی پاک و اطلاعات جدید (که در جدول کمکی هستش) رو درون جدول اصلی ثبت کنم .

برنامه تحت شبکه است .
پس باید هر کاربر بتونه یک جدول کمکی مجزا داشته باشه .
چرا وقتی جدول کمکی رو با Sp میسازم به جای اینکه نامش رو ذخیره کنه یک کد رو به جش ذخیره میکنه .
مثلا Temp# رو با نام 756574888# ذخیره میکنه .
اما وقتی با دستور زیر میسازم :


Create Teble #Temp(a int, b int)

دقیقا درون Sp هم از این دستور استفاده میکنم .
با این دستور نامش رو به صورت زیر در نظر میگیره :
2645464___________________________________________ Temp#
که البته با همون نام Temp# قابل دسترسی هست .
و البته جداولی که با Sp میسازه پس از قطه شدن Connection حذف نمیشه .
دلیل این مسائل چیه ؟
چه طور میشه اگاه شد که یک Session جدولی با نام Temp# براش ساخته شده ؟


ایا برای انجام چنین کاری که در بالا گفتم روش دیگه ای که مطمئن هم باشه هست یا نه ؟
BatchUodate چهطوره ؟

حسین شهریاری
یک شنبه 16 اسفند 1388, 14:20 عصر
سلام

دوست عزیز جداول موقت با دو علامت ## شروع میشوند.شاید تمام ایرادات شما از همین باشه.

##TableName

موفق باشید

محمد سلیم آبادی
چهارشنبه 19 اسفند 1388, 14:58 عصر
سلام

دوست عزیز جداول موقت با دو علامت ## شروع میشوند.شاید تمام ایرادات شما از همین باشه.

##TableName

موفق باشید

جداول موقت (temporary tables) از دو نوع محلی (local) و سراسری (global) تشکیل شدند.
جداولی سراسری با پیشوند ## و محلی با # مشخص می شوند.