PDA

View Full Version : استفاده از تابع برای پر کردن یک فیلد از جدول



mahnaz0098
دوشنبه 07 بهمن 1392, 08:43 صبح
سلام اگر یک جدول با 4 فیلد داشته باشیم و بخواهیم مقدار یکی از فیلدها از ادغام دو فیلد دیگر البته با اجرای یک تابع به دست بیاد ، این تابع کجا باید صدا زده بشه ؟؟این تابع رو نوشتم ولی نمی دونم مقدار بازگشتی رو کجا باید قرار بدم تا تغییر اعمال بشه ؟؟

حمیدرضاصادقیان
دوشنبه 07 بهمن 1392, 09:11 صبح
سلام.
شما کدی که نوشتید رو قرار بدید تا بررسی بشه و اشکالاتش به شما داده بشه.
لطفا یک نمونه داده هم قرار بدید که دقیقا منظورتون چی هست.

starting
دوشنبه 07 بهمن 1392, 09:48 صبح
تابعی که قبلا نوشتین را بایستی در جایی که سایر فیلدهای جدول را لیست می کنید یعنی جلوی SELECT قرار بدین.
مثال

SELECT field1, field2, dbo.concating(field1, field2) as field3
FROM ...
...

mahnaz0098
دوشنبه 07 بهمن 1392, 13:39 عصر
فک کنم درست نتونستم منظورمو برسونم . فرض کنید داخل فیلد اول داریم : رسمی و داخل فیلد دوم داریم : قراردادی . حالا من میخوام موقع پر کردن جدول ، بعد از پر شدن فیلدهای اول و دوم مقدار فیلد سوم با صدا زدن تابعی که نوشتم رسمی / قراردادی بشه ولی نمیدونم که این تابع رو کجا وچطور صدا بزنم که کاری که میخوام انجام بشه ؟

starting
دوشنبه 07 بهمن 1392, 14:00 عصر
یک Computed Column به جدول اضافه کنید...
alter table tablename
add compColumn as dbo.udf(col1, col2)

حمیدرضاصادقیان
دوشنبه 07 بهمن 1392, 15:27 عصر
البته پیشنهاد میشه از اینکار استفاده نکنید و هنگامی که از جدول داده هارو واکشی میکنید این فیلد رو بسازید که سربار کارتون کمتر بشه.بعدا وقتی تعداد رکوردها افزایش پیدا کنه هنگام Select از این جدول دچار کندی خواهید شد.
مگر اینکه فیلد رو از نوع Persist انتخاب کنید.