با استقبال دوستان اما فقط خانم زکی زاده پاسخ به سوالات دادند...
اما جواب سوالات این هفته :
* پاسخ های خانم زکی زاده:
سوال یک:
delete : برای حذف یک سطر از جدول است . درصورتی که از دستور where استفاده نشود تمام سطرها را حذف می کند.
برای برگشت تغییرمون و یا موقتی کردن تغییر می شود در این دستور از commit , roleback استفاده کنیم.
در هربار حذف یک log در فایل ldf ثبت می شود و در مواردی که تعداد زیادی سطر حذف شود باعث کند شدن می شود.
Turncate: برای حذف سریع تمام سطرهای یک جدول کاربرد دارد.
در این دستور هیچ بازگشتی وجود ندارد و از trigger و rollback نمی شود استفاده کرد.
تنها یک log در فایل ldf ثبت می شود.
فضای کمتری را اشغال می کند.
جواب پاسخ سوال 1 بخش متوسط خانم زکی زاده :
تمامی نکات را گفتدید ...کاملا درست است..نکته : هنگام استفاده از Truncate Table باید حتما تمامی روابط موجود بین جداول را حذف کنید.
سوال دو: راستش خوب نفهمیدم ولی فکر می کنم با توجه به جداول موجود با View , select می توان در هر بانک اطلاعات افراد را برداشت کرد و با join یک گزارشی به مدیر داد.(خوب نفمیدم چی می خواستید در مفهوم سوال بگنجانید ولی خوب!)
جواب پاسخ سوال 2 بخش متوسط خانم زکی زاده :
اشتباه است حال جهت پاسخ خود به ادامه مطلب بروید.
حال پاسخ سوالات سه بخش مبتدی ، متوسط و حرفه ای :
پاسخ سوالات بخش مبتدی :
1) اسکیریپ ساخت یک دیتابیس در D:\DataBase به نام Test را بنویسید.
قسمت های Bold شده پاسخ مختصر سوال است بقیه توضیحات به صورت پیش فرض است بستگی به نیاز شما است
[CREATE DATABASE [test
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'test', FILENAME = N'D:\ DataBase\test.mdf' )
2) فرق Primary Key با Unique key چیست ؟
لینک پاسخ سوال
3) فرق فیلد Null با فیلد صفر چیست ؟ (توضیح مختصر)
به صورت خیلی ساده Null هیچ فضایی را در بر نمی گیرد اما فیلد صفر یک فضای یک کارکتری را در بر می گیرد.
(کتاب آموزش SQL Server 2008 نویسنده : روبین دوسون مترجم : مهندس حبیب فروزنده دهکردی صفحه : 200 )
پاسخ بخش متوسط :
1) فرق Truncate Table با Delete چیست ؟ (3مورد )
جواب خانم زکی زاده کاملا درست است ...من به صورت موردی بیان می کنم :
خیلی سریع است.
غیر قابل بازگشت است.
Non-Logged است.
هر جدولی را نمی توان Truncate Table کرد جدول نباید FK داشته باشد.
2) به عنوان مثال بنده مسول رسیدگی در یک بخش بانک مرکزی هستم که مدیر بنده یک سری اطلاعات از بنده می خواهد.
مدیر بنده می گوید ، مشخصات افرادی را که بالای 10 میلیارد تومان پول در بانک های سراسر کشور را دارند را نشان بده .
(چند نکته : ما در کل کشور بانک زیاد داریم حال بحث اصلی من کل بانک ها نیست مثلا شما 3 تا بانک در نظر بگیرید من یک لیست پیوسته از مشخصات افراد و میزان پول آنها در بانک ها را می خواهم)
{Databases = {Bank_Meli,Bank_Melat_Bank_Saderat
{Table :PeInfor_Meli = {IDPersonal ,First_Name ,Last_Name,ListPrice
{Tables :PeInfor_Melat = {IDPersonal ,First_Name ,Last_Name,ListPrice
{Tables :PeInfor_Saderat = {IDPersonal ,First_Name ,Last_Name,ListPrice
{Av Database : Master}
Select IDPersonal,First_Name,Last_Name,ListPrice From Bank_Meli.PeInfor_Meli Where ListPrice >10000000000
Union
Select IDPersonal,First_Name,Last_Name,ListPrice From Bank_Melat.PeInfor_Melat Where ListPrice >10000000000
Union
Select IDPersonal,First_Name,Last_Name,ListPrice From Bank_Saderat.PeInfor_Saderat Where ListPrice >10000000000
اگر display estimated execution plan بروید متوجه سرعت این کوئری با Join نوشتن می شوید.در کل پاسخ درست این است.
بخش حرفه ای :
1) فرق (DBCC Log (Test ,1 با (DBCC Log (Test,4 چیست ؟(شرح کامل)
لینک پاسخ سوال
به امید پاسخ های بیشتر دوستان...و مسابقات بعدی