• 0
cdcase

كيف اعرف ال Lenght الخاص بمتغير داخل Trigger وأعدل عليه

سؤال

السلام عليكم

عندى Trigger بي Fire وقت التعديل على جدول ولاحظت ان رقم الموظف لو ( 001234 ) عندما يسجل داخل الجدول عن طريق ال Trigger

يسجل ( 1234 ) ويقوم بحذف ال 00 من الشمال.

كيف اعرف ال Lenght الخاص بمتغير داخل Trigger وأعدل عليه بحيث لو أقل من 6 أرقام أزيد عليه 0 او 00 حسب رقم الموظف.

تحياتى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

7 إجابة على هذا السؤال .

  • 0

اجعل نوع حقل بيانات رقم الموظف من نوع NVarchar و انتهى الموضوع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
اجعل نوع حقل بيانات رقم الموظف من نوع NVarchar و انتهى الموضوع

انها بالفعل كذلك

DECLARE @var1 NVarchar
SELECT @var1 = Len(deleted.EmpId)

if @var1=4 then
@var1=00 & @var1
elseif @var1=5 then
@var1=0 & @var1
end if

هل ينفع هذا الكود

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هناك دالة تستخدم في الفيجوال بيسك تدعى Val وهي تقوم بجلب القيمة الرقمية للمتغير وكنت استخدمها في الاستعلام مع الاكسس و MySQL بالطريقة الاتية :

Select * From MyTable Where Val(MyFiled)=1234

ولكن عندما جربتها في الـ SQL Server لم تنجح , ربما لها صيغة اخر لكنى لا اعرفها فانا مبتدأ في قواعد بيانات SQL Server فأرجوا من السادة المحترفين من يعرف صيغة اخرى لهذه الدالة يدلنا عليها فهي ما يحتاجه السائل بالضبط , وانا ايضا احتاجها كثيرا واتمنى ان اجدها

تم تعديل بواسطه محمد مصطفي غريب
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلا م عليكم

بالنسبة للدالة Val فهي غير موجودة في T-sql . لكن يمكن عملها بسهولة عن طريق Function.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كيف هذا يا اخي فأنا اكتب هذه الدالة في الـ Query مع العلم اني استخدم SQL Server 2005 Express

كيف اتي بالـ Functions الخاصة بالبرنامج ومعرفة البرامترات الخاصة بها لاستخدمها , وكيف اقوم بصنع Function جديد ووضع البرامترات له

ارجوا ان توجهني اخي فانا بأشد الحاجة الي هذا الامر لاني استعمل الكثير من الدوال في الاستعلامات مع الفيجوال بيسك مثل Val - Instr - Ucase - Lcase -Mid - Right - DateSerial - Datediff - Dateadd - Len - .......

والكثير من الدوال لاصنع استعلام يفي بالغرض في اقل وقت لان عامل السرعة مهم جداً

مع العلم اني استخدم هذا الاستعلام من خلال الفيجوال بيسك , فما الذي يلزمني لصنع مثل هذه الدوال واستخدامها في الفيجوال بيسك مع الاستعلام , وعند نقل الداتا بيز من جهازي لجهاز العميل ما الذي يجب ان افعله لاستخرج هذه الدوال واضعها في جهاز العميل

ارجو ان اجد حل لسؤالي لاني مبتدأ في الـ SQL Server واجد انه افضل بكثيييير في عدة اشياء من الاكسس والـ MySQL ولكن تبقى هذه الدوال عقبة تمنعني من الاعتماد عليه كليا حتى الان

تم تعديل بواسطه محمد مصطفي غريب
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
كيف اتي بالـ Functions الخاصة بالبرنامج ومعرفة البرامترات الخاصة بها لاستخدمها , وكيف اقوم بصنع Function جديد ووضع البرامترات له

انظر في المواضيع المثبتة في القسم لتتعرف على ال Function

وبالنسبة للاخ صاحب السؤال فمن الممكن استخدام الطريقة التالية

SELECT @var1 =right('00000' + cast(deleted.EmpId as varchar(6)),6)

حيث ستحصل في المتغير var1 على رقم من ستة خانات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
وبالنسبة للاخ صاحب السؤال فمن الممكن استخدام الطريقة التالية

SELECT @var1 =right('00000' + cast(deleted.EmpId as varchar(6)),6)

حيث ستحصل في المتغير var1 على رقم من ستة خانات

شكرا يا افندم :) وجارى تجربة الكود

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .