تبلیغات
پروژه - آشنایی با Rule و Trigger و نحوه ساخت آن درSQL-SERVER +دانلود فایل در قالب word
درخواست از شما.پروژه از ما
پروژه

آشنایی با Rule و Trigger  و نحوه ساخت آن در SQL-SERVER

DataType

نوع داده چگونگی تعریف مقادیری است که در متغیر ها و یا جداول (Tables) ذخیره خواهند شد . در زیر به معرفی چند نوع از انواع داده ها پرداخته ایم :

آشنایی با Rule و Trigger  و نحوه ساخت آن در SQL-SERVER

DataType

نوع داده چگونگی تعریف مقادیری است که در متغیر ها و یا جداول (Tables) ذخیره خواهند شد . در زیر به معرفی چند نوع از انواع داده ها پرداخته ایم :

نام

نوع

توضیحات

bit

صحیح

مقدار 0 یا 1 یا NULL را ذخیره می کند.

int

صحیح

داده هایی با طول حداکثر 4 بایت  که معادل بازه ای از31^2-(-2,147,483,648) تا (2,147,483,647)31^2  است .

smalint

صحیح

داده هایی با طول حداکثر 2 بایت که معادل بازه ای از (-32,768)15^2- تا (32,767)1-15^2

decimal

دهدهی

داده های عددی با دقت اعشار و ارقام ثابت بین (1-38) ^ 10- تا (1-38) ^ 10

money

ارزی

مقادیر پولی و ارزی بیت 922- تا 922 میلیارد با دقت 10 هزارم واحد پولی

real

اعشاری

اعدادی با ممیز شناور بین 308+  79 /E*-1 تا 308+  79 /E*1

datetime

تاریخ

تاریخ و ساعت می تواند در فاصله اول ژانویه 1753 تا 31 دسامبر 9999 با دقت 33/3 میلی ثانیه باشد .

cursor

عددی

نشانی یک Table Cursor را باز می گرداند.

char

کاراکتری

تعریف کاراکترهای غیر Unicode  با طول معین و بیشینه طول داده ای 8000 بایت .

varchar

کاراکتری

تعریف کاراکترهای غیر Unicode  با طول نامعین و بیشینه طول داده ای 8000 بایت که براساس طول بیشینه طول ستون تعیین می گردد

text

کاراکتری

ذخیره حجم زیادی از کاراکترهای غیر Unicode با بیشینه طول حدود 2 میلیارد کاراکتر .

nchar

کاراکتریUnicode

تعریف کاراکترهای Unicode با طول معین و بیشینه طول داده ای 4000 بایت .

nvarchar

کاراکتریUnicode

تعریف کاراکترهای Unicode با طول نا معین و بیشینه طول داده ای 4000 بایت که براساس طول بیشینه طول ستون تعیین می گردد

ntext

کاراکتریUnicode

ذخیره حجم زیادی از کاراکترهای Unicode با بیشینه طول حدود 1 میلیارد کاراکتر .

binary

دودویی

ذخیره دادهای دودویی با طول ثابت و بیشینه 8000 بایت .

varbinary

دودویی

ذخیره دادهای دودویی با طول متغیر و بیشینه 8000 بایت .

image

دودویی

ذخیره دادهای دودویی با طول متغیر و بیشینه حدود 2 میلیارد بایت .

ازجمله امكانات SQLserver ، ایجاد DataType های جدید میباشد. یعنی اگر بخواهیم فیلدی داشته باشیم كه Data Type آن جزو DataType های استاندارد خود SQLserver نباشد میتوانیم آنرا با استفاده از این امكان ، ایجاد كرده و در بانك اطلاعاتی خود استفاده نمود مثلا با استفاده از تعریف Data Type جدید میتوانیم یك نوع DataType  از نوع تاریخ شمسی تعریف نموده و سپس در جداول خود فیلدی از آن نوع تعریف نماییم.

 

Rule

Rule یكی از امكانات جالب SQLserver میباشد كه با استفاده از آن میتوانیم داده های ثبت شده در بانك را اعتبار سنجی نمود.

Rule ها تراکنش هایی از دستورات SQL که عموما متشکل از جملات شرطی هستند تشکیل شده است که وظیفه بالابردن اطمینان از صحت اطلاعات وارد شده را دارد.

یک Rule می تواند به فیلد خاص و یا نوع داده ای تعریف شده توسط کاربر اختصاص یابد تا محدودیتهایی را در ورود اطلاعات به فیلد خاصی اعمال کند . از جمله Rule هایی که در برنامه های فارسی کاربرد فراوانی دارد Rule تاریخ شمسی است که بازه هایی از روز و ماه و سال را که کاربر مجاز به ورود آنهاست را تعیین می کند و بدیهی است که مقادیر نامطلوب برای بانک هیچ گاه به بانک وارد نخواهند شد.

 

از Rule  ها استفاده می کنیم چون :

  • ساختن Rule برای تعریف محدودیت در ورود اطلاعات
  • تخصیص Rule  به Column خاص و یا یک نوع داده  تعریف شده توسط کاربر
  • حذف محدودیت Column خاص و یا یک نوع داده  تعریف شده توسط کاربر بوسیله برداشتن Rule

به مثال زیر توجه نمایید :
 میخواهیم
Data Type تعریف نماییم كه تاریخ شمسی را به فرمت درست(رر/ م م/ س س) در جداول ذخیره نمایید. همانطور كه میدایند تاریخ شمسی حتما باید شرایط زیر را داشته باشد:
1- دو  كاراكتر اول آن كه نشان دهنده سال شمسی است باید بین 50 و 99 باشد
2- كاراكتر سوم آن حتما باید / باشد
3- دو كاراكتر چ
هارم و پنجم آن كه نشان دهنده ماه شمسی است باید بین 01 و 12 باشد
4- كاراكتر ششم آن حتما باید / باشد
5- دو كاراكتر هفتم و هشتم آن كه نشان دهنده روز شمسی است باید بین 01 و 31 باشد
حال در مرحله اول برای اینكار یك
Rule بنام Rul_date بصورت زیر میسازیم.
در این رول متغییر
SS بعنوان یك پارامتر استفاده شده است.


 

در مرحله بعد یك Data Type جدید بنام Tarikh از نوع Varchar بطول 8 تعریف میكنیم . حال باید Rule مورد نظر خود را به آن اختصاص دهیم . برای اینكار از كامبو باكس Rule گزینه Rul_date را كه قبلا تعریف كرده ایم ، انتخاب میكنیم.
حال آماده هستیم كه این
Data Type را در تعریف فیلدهای جداولمان استفاده نماییم.


 

 Trigger

Trigger ها نوع خاصی از Stored Procedure ها هستند که مستقیما توسط کاربر قابل اجرا نیستند . هنگامی که یک Trigger  ساخته می شود  در زمان تغییر خاصی روی کل جدول و یا ستون خاصی از آن رویه ذخیره شده در Trigger  فراخوانی می شود .

یک Trigger در پاسخ به جملات INSERT, UPDATE, DELETE فراخوانی می شود . و می تواند پرس و جویی از جدول های دیگر ویا دستورات مرکب SQL  باشد. اگر Server با مشکلی مانند پر شدن محل ذخیره داده مواجه شود تمام تراکنش به طور خودکار بازگشت داده می شود .

Trigger ها می توانند در کارهای زیر مفید باشند :

  • می توانند تغییراتی را بصورت آبشاری (Cascading) در جدول های از بانک اطلاعاتی ایجاد کنند .
  • می توانند تغییراتی بسیار پیچیده تر و مرکب تر از ایجاد محدودیت ها بوسیله CHECK را ایجاد کنند . مثلا محدود کننده Check تنها می تواند مقدار یک ستون را با مقداری از همان جدول مقایسه کند و اگر بخواهیم آنرا با مقداری از جدول دیگری مقایسه کنیم نیاز به Trigger خواهیم داشت .
  • محدود کننده ها (Constraint) تنها می توانند با پیامهای خطای استاندارد کار کنند و برای پاسخگویی به خطای مرکب باید از Trigger ها استفاده کرد .
  • ارزیابی وضعیت جدول قبل و یا بعد از تغییر در آن به منظور تعیین انجام کارهای خاص در وضعیت های خاص .
  • قابلیت انجام چند Trigger در پاسخ به INSERT, UPDATE, DELETE

  نكته: اگر Constraint هایی روی یک جدول Trigger  اعمال شود ، آنها بعد از جملات  Instead of Trigger و قبل از After اجرا می شوند . اگر در اجرای Constraint ها ایرادی بودجود آمد فعالیتهای Instead of باز گردانده می شوند و تریگر  After اجرا نمی شود .

 مثال: جدولی بنام Table1 با فیلدهای ID , Name و جدول دیگری نیز داریم بنام Table2 با فیلدهای ID,L_ID,Phone .

56.doc





نوع مطلب : کامپیوتر، 
برچسب ها :
لینک های مرتبط :

یکشنبه 15 مرداد 1396 11:18 ب.ظ
Just want to say your article is as amazing. The clearness in your post is
simply excellent and i could assume you are an expert on this
subject. Well with your permission allow me to grab your RSS feed to keep
updated with forthcoming post. Thanks a million and please continue the rewarding work.
یکشنبه 15 مرداد 1396 01:32 ق.ظ
Hi, this weekend is nice in favor of me, since this time i am
reading this great informative article here at my residence.
دوشنبه 9 مرداد 1396 09:53 ب.ظ
Fantastic goods from you, man. I've understand your stuff previous to and you are
just extremely great. I actually like what you
have acquired here, really like what you are saying and the way in which you
say it. You make it entertaining and you still
care for to keep it sensible. I cant wait to read far more from
you. This is actually a wonderful website.
چهارشنبه 7 تیر 1396 06:47 ب.ظ
Glad to be one of several visitors on this awful internet
site :D.
سه شنبه 26 اردیبهشت 1396 05:01 ق.ظ
ریشه از خود نوشتن در حالی که ظاهر شدن مناسب ابتدا
آیا نه نشستن بسیار خوب با من
پس از برخی از زمان. جایی در سراسر پاراگراف
شما در واقع قادر به من مؤمن متاسفانه
فقط برای کوتاه در حالی که.

من هنوز مشکل خود را با فراز در مفروضات و شما خواهد را خوب به
کمک پر همه کسانی شکاف. در این رویداد شما که می
توانید انجام من را مطمئنا بود مجذوب.
سه شنبه 26 اردیبهشت 1396 02:13 ق.ظ
You could definitely see your expertise in the article
you write. The sector hopes for even more passionate writers such as you who aren't afraid
to mention how they believe. At all times go after your heart.
دوشنبه 25 اردیبهشت 1396 11:41 ق.ظ
What's up mates, its great post concerning educationand
entirely defined, keep it up all the time.
چهارشنبه 20 اردیبهشت 1396 01:11 ب.ظ
Hi my family member! I want to say that this post is amazing, great written and include almost all significant infos.
I'd like to peer extra posts like this.
سه شنبه 22 فروردین 1396 01:48 ب.ظ
Thanks very interesting blog!
سه شنبه 15 فروردین 1396 07:51 ب.ظ
I like it whenever people come together and share ideas.
Great blog, stick with it!
دوشنبه 7 فروردین 1396 07:18 ب.ظ
If you want to improve your familiarity just keep visiting this site and be updated with
the newest news update posted here.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ


این وبلاگ برای راحتی شما عزیزان در زمینه انواع پروژه ها ساخته شد.

مدیر وبلاگ : مصطفی رضایی
نویسندگان
آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :