PDA

View Full Version : مکانیسم اظهار



amin1softco
سه شنبه 16 آذر 1389, 17:52 عصر
دوستان ما یک کتابی داریم که اونجا نوشته مکانیسم اظهار شرط یا شرایطی است که همیشه بایسد روی پایگاه رعایت شوند. و در تعریفش نوشته :

CREATE ASSERTION constraint-name
[BEFORE COMMIT | AFTER {INSERT | DELET | UPDATE[OF ()column name)]}
.
.

ولی من اصلاً نمی تونم این دستوررا در اس کیو ال اجرا کنم:عصبانی++:البته یک سرچی زدم مثل اینکه همچین چیزی رو پایگاه SQL2008 معنایی نداره حالا اصل قضیه چیه؟!:متفکر:

Rezahak
سه شنبه 16 آذر 1389, 21:59 عصر
اگر می دانید check چیست باید بگویم ASSERATION یک نوع Check است که در سطح table یا مجموعه ای از row ها انجام می شود . اگر هم نمی دانید Check چیست به طور خلاصه می گویم شرطی است که برای اطلاعات یک table اعمال می گردد و در سطح row است مثلا اگر بخواهید مطمئن شوید یک جدول هرگز خالی نباشد باید بنویسید :

CREATE TABLE tbl
( ...
CONSTRAINT tbl_not_empty
CHECK ((SELECT COUNT(*) FROM tbl) > 0), ... );
در خصوص oracle 10g که مطمئنم پشتیبانی می کند ولی در خصوص sql server به جای آن می توان از trigger استفاده کرد

amin1softco
سه شنبه 16 آذر 1389, 22:29 عصر
در این کتاب نوشته که ما دوتا مکانیسم داریم که یکی همین اظهاره و اون یکی هم رهاناست رهانا رو با تریگر پیاده کرده و اظهار رو با این ازرشن و گفته اینا جزو دستورات رسمی اس کیو ال 2003 هستند. ولی من در اس کیو ال 2005 همچین چیزی ندیدم و اینکه روش های جالبی برای پیاده سلازیش هست دوست من یکیش همین روش شماست.

Rezahak
چهارشنبه 17 آذر 1389, 10:10 صبح
فکر نمی کنم ما برای Microsoft SQL Server نسخه 2003 داشته باشیم شاید منظورش زبان SQL(Standard Query Language) باشد به هر حال خدمتتون عرض کردم Oracle 10g حتما ASSERATION را پشتیبانی می کند ولی Microsoft Sql Server خیر