حذف تمام پروسیجر ها
بسم الله الرحمن الرحیم
حذف کردن تمامی پروسیجر ها
برای دوستان عزیز که در تیم طراحی پایگاه داده SQL فعالیت می کنند مطلبی را آماده کردم که انشالله مفید واقع شود.
برای حذف تمامی پروسیجر های موجود در یک پایگاه داده کافی است که کد زیر را اجرا کنید تا تمامی پروسیجر های شما
حذف شوند.می توان این دستور را به صورت یک پروسیجر ذخیره کنید تا در مواقع نیاز از آن استفاده کنید و در نهایت کد ما
خطای Cannot open user default database
بسم الله الرحمن الرحیم
برطرف کردن خطای Cannot open user default database
هر User در SQL Server یک Database Default دارد، شما می توانید Database پیش فرض یک User را از طریق بخش Security زیر منو Logins برای User خود مشخص کنید. در تصویر زیر ما بر روی کاربر Sa دابل کلیک کرده ایم.
همانطور که در تصویر بالا مشاهده می کنید، در اینجا پایگاه داده پیش فرض کاربر ما Master می باشد.
اگر شما به هر دلیلی پایگاه داده پیش فرض یک User را حذف کنید، خطای زیر اتفاق خواهد افتاد.
حال اگر شما تنها یک کاربر برای SQL Server خود داشته باشید و پایگاه داده پیش فرض این کاربر را حذف کنید، طبیعتا دیگر نمی توانید به Instance مربوطه Login کنید.
در این شرایط راه حل اول نصب یک Instance جدید بر
انتقال اطلاعات Database در MVC
بسم الله الرحمن الرحیم
بسیاری از مواقع شما نیاز دارید اطلاعات درون پایگاه داد خود را به پایگاه داده دیگری انتقال دهید.
در مطلب تبدیل اطلاعات یک SQL Server به نسخه SQL Server پایین تر نحوه انتقال اطلاعات را از یک نسخه جدید SQL Server به نسخه های قدیمی تر توضیح دادیم. در مطلب بالا توضیح دادیم چطور می توانید فقط اطلاعات و داده های درون پایگاه داده را بدون ساختار پایگاه داده (مانند کدهای تولید View,Table و...) انتخاب کنید.
آموزش Full-Text Search
بسم الله الرحمن الرحیم
آموزش ساخت Full Text Catalog و Full Text Search در SQL Server
در این آموزش مفاهیم زیر را بررسی خواهیم کرد
-
ساخت Full-Text Search
-
ساخت Full-Text Catalog
-
ساخت Full-Text Index
-
-
نوشتن Query با استفاده از Full-Text Search
-
استفاده از Full-Text Search در پروژه های ASP.NET MVC به کمک LINQ
تصور کنید وب سایتی دارید و میخواهید بر روی حجم زیادی از اطلاعات جستجو انجام دهید. وب سایت شما یک وب سایت آموزشی مانند ABLY.ir است و در آن متن های زیادی وجود دارد. شما میخواهید یک فرم جستجو برای جستجو در تمامی قسمت های وب سایت ایجاد کنید.
چطور می توانید این جستجو را با این ویژگی ها پیاده سازی کنید؟
1- جستجو در کلمات کلیدی
2- جستجو در میان نویسندگان
3- جستجو در مطالب
4- جستجو در عنوان فایل ها
و..
اولین راه حلی که انتخاب می شود JOIN کردن تمام جداول و نوشتن یک دستور SELECT با انجام WHERE بر روی همه ی ستون ها است!. این راه حل بدترین راه حل ممکن است زیرا در صورتی که حجم اطلاعات شما افزایش یابد عملا سیستم جستجو شما دیگر پاسخگو نخواهد بود زیرا طبیعتا برای جستجو در متن ها باید از دستور LIKE استفاده کنید که این دستور خود به دلیل مقایسه تمامی عبارت های ذخیره شده به صورت بخش به بخش با متن درخواستی کاربر بسیار سرعت کمی دارد، همچنین هزینه JOIN بسیار سنگین خواهد بود و باعث می شود عملا این ویژگی غیر قابل استفاده شود.
SQL Server با ارائه دادن ابزاری به نام Full Text Search به شما این امکان را می دهد که به سادگی و با بهترین کارایی جستجحو های خود را بر روی متن ها انجام دهید.
Full Text Search
Full Text Search ابزاری است که به شما برای ایجاد انواع کوئری های پیچده بر روی داده های از نوع کاراکتر (Character) کمک می کند. این کوئری ها می توانند بر روی کلمات، جمله ها و عبارت ها مورد استفاده قرار گیرند. ما می توانیم یک full-text index را بر روی یک Table و یا یک indexed view ایجاد کنیم. full-text Search تنها می تواند بر روی یک Table و یا یک indexed view مورد استفاده قرار گیرد. Index می تواند تا 1024 ستون (Column) را در بر گیرد.
Full Text Index
Full Text Index از Token هایی تشکیل می شود که این Token ها در واقع همان کلمات درون یک فیلد شما هستند و این امر باعث می شود که بتوان بر روی متون index گذاری کرد و سرعت جستجو را افزایش داد.
مثال: من اسماعیل شیدایی هستم.
اگر مقدار یکی از رکوردهای ما به صورت بالا باشد پس از انجام عملیات full-text index این متن به صورت زیر ذخیره خواهد شد.
"من"
"اسماعیل"
"شیدایی"
"هستم"
این کار باعث می شود تا شما در سریعترین حالت ممکن بتوانید به اطلاعات مورد نظر خود برسید زیرا SQL Server اطلاعات شما را Index گذاری می کند در نتیجه به سرعت می تواند محل قرار گیری (شماره رکورد) هر کلمه را در جدول بازیابی کند.
طبیعتا راه حل پیش فرض برای جستجو در متن ها استفاده از دستور LIKE می باشد. دستور Like بر روی کاراکترها جستج خود را انجام می دهد و مقدار درخواستی شما را با تمام متن ها مقایسه می کند اما در Full Text Search مقدار درخواستی شما با کلمات مقایسه می شود به همین دلیل تفاوت سرعت اجرای این دو دستور در کوئری های پیچیده بسیار مشخص خواهد بود.
برای ساخت Index می بایست ما مراحل زیر را انجام دهیم.
1. Create a Full-Text Catalog
2. Create a Full-Text Index
3. Populate the Index
Create a Full-Text Catalog
ابتدا دیتابیس خود را انتخاب کرده، سپس از بخش Storage بر روی Full Text Catalog راست کلیک کرده و گزینه New Full-Text-Catalog را انتخاب می کنیم.
در پنجره باز شده نامی را برای Full Text Catalog خود انتخاب می کنیم و سپس Ok را انتخاب کنید. Full Text Catalog ما با موفقیت ایجاد شد.
تبدیل اطلاعات یک SQL Server به نسخه SQL Server پایین تر
بسم الله الرحمن الرحیم
آموزش Generate Script در SQL Server
بسیاری از مواقع شما نیاز دارید اطلاعات درون پایگاه داده خود را از یک SQL Server به نسخه دیگری منتقل کنید، متاسفانه شما نمی توانید اطلاعات درون یک پایگاه داده را به نسخه دیگری که از SQL Server قدیمی تر استفاده می کند منتقل کنید.
به طور مثال، اگر بخواهید اطلاعات درون پایگاه داده خود را که زا SQL Server 2012 استفاده می کند به SQL Server 2008 منتقل کنید، چطور این کار را انجام می دهید؟
یکی از این روش ها استفاده از Generate Script می باشد.
برای این کار کافی است مراحل زیرا طی نمایید:
ابتدا SQL Server خود را باز نمایید، سپس بر روی پایگاه داده ای که قصد دارید به SQL Server دیگری منتقل شود راست کلیک کنید سپس از گزینه Tasks زیر منوی Generate Scripts را انتخاب کنید.
آموزش تبدیل یک دیتابیس به Model - Code first
بسم الله الرحمن الرحیم
آموزش Entity Framework Power Tools
تبدیل پایگاه داده به Model در Entity Framework
هنوز افراد زیادی وجود دارند که تمایل دارند پایگاه داده خود را با استفاده از SQL Server ایجاد کنند و سپس از روی پایگاه داده Model های خود را طراحی کنند (Code first) . راه های زیادی برای تبدیل یک پایگاه داده به کلاس های Model وجود دارد در همین وب سایت برخی از این روش ها را بررسی کرده ایم اما امروز می خواهیم یک ابزار بسیار کارامد و سریع را برای اینکار به شما معرفی کنیم.
من یک پایگاه داده را در SQL Server ایجاد کرده ام و سپس یک پروژه پیش فرض MVC را ایجاد کرده ام. حال نوبت به طراحی و بازنویسی Model ها می رسد.
بهینه سازی SQL
بسم الله الرحمن الرحیم
بهینه سازی SQL
AutoGrowth
سایر مطالب در خصوص بهینه سازی SQL را می توانید از این بخش مطالعه بفرمایید.
طبیعتا همه دوستان با تصویر بالا آشنا هستند. این پنجره وقتی باز می شود که شما می خواهید یک پایگاه داده جدید را طراحی کنید. متاسفانه اکثر افراد تنها در این پنجره نام پایگاه داده خود را مشخص می کنند و سپس کلید Ok را انتخاب می کنند.
یکی از بخش های این پنجره که در تصویر بالا مشخص شده است مربوط به نحوه Growth و یا همان رشد پایگاه داده شما است.
به صورت پیش فرض پایگاه داده شما می تواند 3 MB از فضای درایو مشخص شده را برای فایل MDF خود و همچنین 1 MB را به فایل LDF خود اختصاص دهد. در صورتی که حجم هر یک از فایل های MDF و LDF شما از مقدار مشخص شده بیشتر شود. پایگاه داده شما بر اساس تنظیمات مشخص شده در بخش Autogrowth / Maxsize رشد خواهد کرد.
همانطور که در تصویر مشخص است فایل MDF شما می تواند در صورت بزرگتر شدن از 3 MB به صورت نامحدود در هر مرحله 1 MB رشد کند.
فایل LDF نیز در صورت بزرگتر شدن از 1 مگابابیت 10 درصد رشد خواهد کرد. در صورتی که فایل LDF 100 مگابایت باشد با تنظیم رشد 10 درصدی، فایل مربوطه به 110 مگابایت افزایش خواهد یافت.
Stored Procedure
بسم الله الرحمن الرحیم
فراخوانی Stored Procedure
برای انجام هر کار طبیعتا روش های متفاوتی وجود دارد. در این مقاله قصد داریم نحوه یافتن یک Stored Procedure را در روش ها مختلف بررسی کنیم.
برای مثال در ابتدا یک Procedure به صورت زیر تعریف می کنیم.
CREATE PROCEDURE TESTING
(@OPTION INT)
AS
IF @OPTION=0
SELECT 1 AS NUMBER
ELSE
SELECT 100 AS NUMBER
GO
برای یافتن و مشاهده این Procedure می توانیم از روش های زیر کمک بگیریم.
SQL Injection
بسم الله الرحمن الرحیم
SQL Injection
در این آموزش قصد داریم در خصوص امنیت در SQL Server به صورت مختصر صحبت کنیم.
معمولا بیشتر مشتریان نگران امنیت اطلاعاتشان هستند و از تدابیری برای جلوگیری از SQL Injection صحبت می کنند. بیشتر اتفاقاتی که در خصوص SQL Injection رخ می دهد به دلیل مشکلاتی است که در SQL Server توسط طراحان پایگاه داده و برنامه نویسان انجام می شود، زیرا بیشتر طراحان اطلاعات کافی در خصوص SQL Injection ندارند و تنها نام آن را شن
تاریخ در SQL
بسم الله الرحمن الرحیم
همانطور که می دانید ما در SQL Server نوع داده ای با نام DateTime داریم. این نوع داده ای برای ذخیره اطلاعات تاریخ و ساعت در SQL Server استفاده می شود. در اینجا قصد داریم برخی از توابع مفید برای کار بر روی DateTime را بررسی کنیم.
بدست آوردن تاریخ جاری در SQL Server
برای بدست آوردن تاریخ و ساعت جاری سیستم می توانید از تابع زیر استفاده کنید
select getdate()
DATEPART
بدست آوردن بخشی از یک تاریخ در SQL Server
اگر بخواهید بخشی از یک تاریخ و زمان را انتخاب کنید، (مثلا فقط روز یا فقط ساعت و....) می بایست از تابع DATEPART استفاده کنید این تابع دو پارامتر دریافت می کند.
پارامتر اول مشخص کننده بخشی از تاریخ و زمان که می بایست انتخاب شود و پارامتر دوم تاریخی است که شما می خواهید بر روی آن کار کنید.
DATEPART ( datepartEnum , yourDate )
به جای datepartEnum می توانید از مقادیر زیر استفاده کنید
datepart |