اهمیت Attach و Detach در SQL Server زمانی مشخص میشود که بخواهید حجم زیادی از دادههای یک دیتابیس را جدا کنید و آن را دوباره به همان یا نمونه دیگری از دیتابیس SQL Server بچسبانید. پیش از اینکه بهسراغ کاربردهای این دو عمل برویم، بیایید ابتدا کمی بیشتر با آنها آشنا شویم.
عملیات Attach در SQL Server به فرآیند پیوستکردن یک پایگاه داده به نمونه SQL Server گفته میشود. زمانی که یک دیتابیس را با Attach پیوست میکنید، درواقع آن را برای استفاده، در اختیار یک نمونه SQL Server قرار دادهاید. زمانی که شما یک فایل پایگاه داده دارید که جداگانه ایجاد یا از نمونه دیگری جدا شده است، برای اضافهکردن آن به دیتابیس، باید از Attach در SQL Server استفاده کنید. در بخشهای بعدی مقاله، شیوه انجام این کار را توضیح میدهیم.
Detach در SQL Server نقطه مقابل Attach است. زمانی که شما دادهها را از نمونه SQL Server جدا میکنید، بدون اینکه فایلهای دیتابیس حذف شوند، درواقع از Detach استفاده کردهاید. در این حالت، ارتباط بین دیتابیس و آن نمونه SQL Server قطع میشود و دیگر در دسترس نیست. Detach در SQL Server زمانی کاربردی است که شما قصد دارید فایلهای دیتابیس را به جای دیگری منتقل کنید، یا اینکه دادهها نیاز به تعمیر و نگهداری (Maintenance) دارند و باید به نمونه دیگری انتقال پیدا کنند. البته بهطورکلی، Detach کاربرد کمتری نسبت به Attach دارد.
مهمترین کاربردهای Attach و Detach در SQL Server که میتوانند بهصورت مکمل استفاده شوند، عبارتند از:



میتوانید از این کد برای مشخصکردن محل دقیق Attach دیتابیس استفاده کنید:
C:\ProgramFiles\MicrosoftSQLServer\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_Data.mdf


گزینه Drop Connections نشان میدهد که آیا اتصالی به دیتابیس فعلی وجود دارد یا خیر. توجه داشته باشید که امکان جداکردن دیتابیس با اتصالات فعال وجود ندارد و در این حالت، Detach ناموفق خواهد بود.
گزینه Update Statistics هم آمارهای قدیمی را قبل از جداکردن دیتابیس بهروز میکند. اگر تیک این گزینه را بردارید، آمار به همان شکلی باقی میماند که در زمان جدا کردن دیتابیس بود.

همانطور که گفتیم، Attach و Detach در SQL Server به نوعی در مقابل یکدیگر قرار میگیرند. زمانی که یک دیتابیس را پیوست (Attach) میکنید، یعنی:
در مقابل، وقتی که دیتابیس را جدا (Detach) میکنید، به این معناست که:
در بعضی مواقع، امکان اجرای Attach و Detach در SQL Server وجود ندارد. بیایید این موقعیتها را به تفکیک برای هرکدام بررسی کنیم.
چرا نمیتوان دیتابیس را Attach کرد؟ شاید پاسخ این مشکل شما در بین موارد زیر باشد:
اگر هریک از موارد زیر برای شما صدق کند، نمیتوانید دیتابیس را جدا کنید:
Attach و Detach در SQL Server دو عمل کاربردی هستند که امکان افزودن داده به دیتابیس یا حذف از آن را با سرعت بیشتر فراهم کردهاند. در این مقاله، هرآنچه لازم بود درباره این عملیات بدانید، باهم بررسی کردیم و شیوه انجام هرکدام را آموزش دادیم.