سلام
میبخشید کمی گرفتاری داشتم و نتوانستم زودتر پاسخ دهم...
اصول کار دیتابیس ها بر مبنای پروتکل های شبکه است.
دیتابیس هایی مانند SQL Server, Oracle, My SQL, Postgre SQL و...
اینطور نیستند که شما یک فایل بدهید و برنامه به آن فایل متصل شود و کار کند.
بلکه دیتابیس در سرور تعریف شده و حدود امنیتی آن مشخص میشود.
سپس کلاینت ها با نام یا IP سرور و نام دیتابیس و یک جفت User, Pass متصل شده و تراکنش انجام میدهند.
فایل واقعی خیلی از دیتابیس ها خیلی راحت قابل دیدن وکپی کردن نیست و در موارد خاص فایل های متعددی وجود دارد و در برخی موارد با خوشه/Cluster های سرور طرف هستید.
در نهایت در نسخه های اصلی SQL Server شما نمیتوانید با فایل کار کنید.
به قول خودتان دیتابیس باید Attach باشد تا بتوان با آن کار کرد.
حتی شما سایت هم طراحی کنید، و یک Host اشتراکی اجاره کنید، اینطور نیست که فایلی از دیتابیس ببینید یا کپی کنید.
یک پنل FTP برای کپی همه فایل ها میدهند و یک پنل مخصوص هم برای ساخت دیتابیس و جداول و... در سرور تان.
یعنی نمیتوانید فایل mdf دیتابیس تان کپی کنید به سرور و با آن کار کنید. منظورم آن است که کلا مفهوم فایل محور را در کار با دیتابیس ها وپروژه های واقعی باید فراموش کنید.
اما...!
در این بین SQL Server برای پروژه های کوچک و آزمایشی هم فکر هایی کرده.
چندین نسخه از SQL Server وجود دارد:
1) نسخه Compact که تقریبا هیچ امکاناتی از SQL Server را نداشت! و حتی فایل sdf آن هم با سایر نسخه های SQL Server سازگار و قابل استفاده نبود و تولید آن هم متوقف شد.
2) نسخه LocalDB که خیلی خلاصه شده است و شاید بتوان آن را جایگزینی بر Compact دانست و امکان کار با فایل mdf بدون Attach را هم دارد.
(و سرویسی که باید Start باشد هم ندارد.) 3) نسخه Express که ویژگی های جالب و خاص خود را دارد
(که به نوعی بین بند قبلی و بعدی قرار میگیرد ...) 4) نسخه های اصلی مانند Workgroup و Web و Standard و Azure و Developer و Enterprise که بیشترین حد امکانات را دارند و عملا در سایت ها و شرکت ها و شبکه ها و... استفاده میشوند و هیچ کدام با دادن فایل mdf کار نمیکنند.
اگر برنامه تان کوچک است و تحت شبکه و از چند رایانه نمیخواهد کار کند و میخواهید برنامه تان بدون Attach و مانند تجربه تان در Compact با دادن مسیر فایل کار کند، به گمانم بهترین گذینه نصب و استفاده از SQL Server LocalDB است.
LocalDB امکانات بسیار بیشتر از Compact دارد و ساختار دیتابیس و جداول و... در LocalDB بطور کامل با نسخه صنعتی Enterprise هماهنگ است.
یعنی شما میتوانید برنامه را در LocalDB بسازید و آزمایش کنید و حتی سالها با آن کار کنید و بعد تصمیم بگیرید دیتابیس را ببرید در Enterprise و Attach کنید و در شبکه کار کنید.
با Connection String ای شبیه این میتوانید از LocalDB استفاده کنید:
"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=DBNAME;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\DBFILE.mdf"
در ضمن VS2017 در زمان نصب، خودکار نسخه ای از LocalDB را هم برایتان نصب میکند.
برای دانلود مستقل LocalDB و نصب در رایانه مقصد/مشتری هم میتوانید به سایت مایکروسافت مراجعه کنید و بسته SQL-Express را دانلود کنید که شامل یک فایل Setup مستقل برای LocalDB هم خواهد بود.
نسخه SQL Server 2017 Express + LocalDB را میتوانید از تاپیک زیر دانلود کنید:
/Forum/Home/Topic/66-SQL-Server-2017
مجدد تاکید میکنم که اگر VS2017 نصب کرده اید، رایانه خودتان LocalDB را دارد.