Embed کردن SQL Server Express 2008 در یک برنامه
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: سه دقیقه

مقدمه
نصب Microsoft Sql Server یکی از عملیات مشکل برای کاربر نهایی می‌باشد. برای رفع این مشکل، باید آنرا بصورت اتوماتیک و بدون درگیر کردن کاربر آن را نصب کنیم.برای اینکار دو روش موجود است:
1) استفاده از فایل Configure.ini
2) ارسال پارامتر به فایل Setup.exe از طریق Command Prompt

قابلیت‌های نسخه‌های مختلف Sql Server Express 2008
 نسخه / قابلیت Database Engine Management Studio Basic Full-Text Search Reporting Services
Management Studio Basic    X    
 Runtime Only
 X      
 with Tools   X  X    
  with Advanced Services     X  X  X  X

(SQL Server 2008 Management Studio Express (SSMSE
ابزارهای مدیریتی گرافیکی رایگان برای پیکربندی، مدیریت و اداره کردن برنامه‌های SQL Server Express 2008
استفاده برای مدیریت چندین نمونه از موتور پایگاه داده SQL Server که توسط نسخه‌های مختلف SQL Server 2008 ساخته شده اند.

(SQL Server 2008 Express (Runtime Only
موتور پایگاه داده SQL Server برای ساخت، ذخیره سازی، بروز رسانی و واکشی داده

SQL Server 2008 Express with Tools
موتور پایگاه داده SQL Server برای ساخت، ذخیره سازی، بروز رسانی و واکشی داده
SQL Server Management Studio Basic - یک ابزار مدیریتی ویژوال برای ساخت، ویرایش و مدیریت پایگاه‌های داده

SQL Server 2008 Express with Advanced Services
موتور پایگاه داده SQL Server برای ساخت، ذخیره سازی، بروز رسانی و واکشی داده
SQL Server Management Studio Basic - یک ابزار مدیریتی ویژوال برای ساخت، ویرایش و مدیریت پایگاه‌های داده
Full-Text Search - یک موتور قدرتمند و پرسرعت برای جستجوی داده‌های متن-فشرده

دو حالت برای نصب SQL Server وجود دارد:
نصب یک نمونه جدید
آپگرید

نصب SQL Server Express 2008 از طریق Command Prompt
1) پس از دانلود SQL Server Express 2008 با پارامتر X/ انرا از حالت فشرده خارج کنید.
برای این کار Command Prompt (یا همان cmd) را باز کنید و با دستور cd به مسیری که فایل  SQL Server Express هست بروید.
حالا نام فایل نصب را همراه با پارامتر X/ در cmd تایپ کنید. مثلا: SQLExpr32_x86_enu.exe /x
نکته: اگر فایل یا سی دی نصب ویژوال استودیو 2010 را دارید می‌توانید فایل نصب SQL Server Express را در مسیر WCU\SSE\ پیدا کنید.
2) همانطور که می‌بینید یک مسیر برای Extract از شما خواسته شده. یک مسیر وراد کنید.
3) در مسیر ساخته شده، یک فایل با پسوند bat. بسازید و آنرا یا یک ویرایشگر متنی باز کنید و دستورات زیر را در آن تایپ کنید:
Setup.exe /q /Action=Install /Hideconsole /Features=SQL,Tools
/InstanceName=SQLExpress /SQLSYSADMINACCOUNTS="Builtin\Administrators"
/SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>

توضیح پارامترهای فوق بشرح زیر است:
q/ (اختیاری): اینکه Setup به حالت خاموش (quiet mode) و بدون رابط کاربری اجرا شود.
Action/ (الزامی): عملیاتی که باید انجام شود. این پارامتر مقدار install و upgrade را قبول می‌کند.
Features/ (الزامی): اینکه کدام قابلیت‌های SQL Server باید نصب شوند.
HideConsole/ (اختیاری): اگر از این پارامتر استفاده شود، پنجره کنسول نمایش داده نخواهد شد.
InstanceName/ (الزامی): نام نمونه ایی که باید نصب شود.
SQLSYSADMINACCOUNTS/ (الزامی): مقررات لوگین برای اعضای با نقش "مدیر سیستم".
SQLSVCACCOUNT/ (الزامی): تعیین اکانتی که سرویس SQL Server را در Startup ویندوز اجرا کند.
SQLSVCACCOUNT/ (اگر از یک اکانت لوکال یا تحت Domain استفاده کنید الزامی است): تعیین پسورد اکانت پارامتر SQLSVCACCOUNT.

باتوجه به سیاست‌ها نصب می‌توانید از پارامترها دیگری نیز استفاده کنید. بعنوان مثال پارامترهای زیر برای نصب روی سیستمی که نام کاربری و پسورد انرا نداریم مناسب است:
setup.exe /q /Action=Install /Features=SQL /InstanceName=SQLExpress /SECURITYMODE=SQL /SAPWD="1234567" 
/SQLSYSADMINACCOUNTS="Builtin\Administrators" /SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" 
/SQLSVCSTARTUPTYPE="Automatic" /TCPENABLED=1 
نکته: اگر مقدار پارامتر SECURITYMODE برابر SQL باشد حتما باید پارامتر SAPWD مقداردهی شود.
نکته: اگر مقدار TCPENABLED برابر 1 باشد پروتکل TCP/IP فعال می‌شود. اگر هیچ نمونه‌ی دیگری روی سیستم نصب نباشد مقدار TCP Port برابر 1433 است، درغیر اینصورت یک مقدار تصادفی تولید می‌شود.
نکته: برای خوانایی بیشتر، پارامترهای فوق در چند خط نوشته شده اند. برای اجرای صحیح در یک فایل bat، همه انها باید در یک خط باشند.
برای اولین بهتر است از پارامتر HideConsel/ استفاده نکنید تا خطای احتمالی رو مشاهده کنید. برای آپگرید کردن نیز می‌توانید از دستور زیر استفاده کنید:
Setup.exe /q /Hideconsole /ACTION=upgrade /INSTANCENAME=SQLExpress

برای مشاهده دیگر پارامترها به مستندات MSDN مراجعه کنید. همچنین می‌توان نصب از طریق فایل Configuration را نیز انجام داد.
امیدوارم مفید واقع شده باشد.
  • #
    ‫۱۰ سال و ۱۲ ماه قبل، دوشنبه ۲۲ مهر ۱۳۹۲، ساعت ۱۲:۳۱

    ممنون از شما. برای کارهای سبک استفاده از SQL Server CE شاید مناسب‌تر باشد یا حتی LocalDB .

    • #
      ‫۱۰ سال و ۱۲ ماه قبل، سه‌شنبه ۲۳ مهر ۱۳۹۲، ساعت ۰۳:۳۳
      خواهش می‌کنم.
      بله، بسته به سناریو می‌شود از پایگاه داده‌های سبکتر نیز استفاده کرد.
      LocalDB متاسفانه محدودیت‌های زیادی دارد، مثلا در XP ساپورت نمی‌شود، فقط توسط Sql server 2012 management studio در دسترس هست که برای محصولات عمومی مناسب نیست. البته محل استفاده خاص خودش را دارد.
      باز هم همه چیز به نحوه و محل استفاده بستگی دارد.
  • #
    ‫۱۰ سال و ۱۱ ماه قبل، چهارشنبه ۸ آبان ۱۳۹۲، ساعت ۱۹:۱۳
    شما که زحمت نوشتن این مقاله را کشیده اید کاش از نسخه ۲۰۱۲ استفاده می‌کردید.
      • #
        ‫۱۰ سال و ۱۱ ماه قبل، چهارشنبه ۸ آبان ۱۳۹۲، ساعت ۲۲:۳۲
        بله درسته. من اصلاً حواسم به پشتیبانی از xp و کامپیوترهای قدیمی نبود. ویندوز xp هم معضلی شده برای خودش. از یک طرف نمی‌توان پشتیبانی را قطع کرد، چون تعداد زیادی کامپیوتر در داخل کشور هنوز در همین حد هستند از طرف دیگر پشتیبانی از فناوری به این حد قدیمی چندان عاقلانه نیست.

        البته یک راه دیگر هم هست. استفاده از db engine‌های کوچکتر که معمولا embeded هستند. مثل sqlite و شاید sql ce و بقیه.
  • #
    ‫۱۰ سال و ۷ ماه قبل، جمعه ۲ اسفند ۱۳۹۲، ساعت ۱۸:۵۶
    سلام، ببینید من ورژن‌های متعددی که برای دانلود نسخه 2012 قرار داده شده رو به همراه حجمشون پایین نوشتم. به عنوان مبتدی می‌خواستم بدونم چه وقت از کدام یک از اینها استفاده میشه؟
    یک حالتی هست که ویژوال استودیو از من می‌خواد نسخه اکسپرس رو نصب کنم، خوب نسخه ای با حجم و امکانات بالا رو نصب می‌کنم. یک حالتی هم هست که بصورت توکار در یک برنامه قرار داده میشه که کاربر نهایی در اجرای برنامه به مشک برنخوره، حالا چطور متوجه بشیم که کدوم نسخه برای کاربر نهایی مناسبه.
    تشکر
    SQL Server Express with Tools (with LocalDB, Includes the database engine and SQL Server Management Studio Express) 1.4G
    SQL Server Management Studio (Tools only) 939MB
    SQL Server Express LocalDB (MSI installer) 24MB
    SQL Server Express with Advanced Services (contains the database engine, Express Tools, Reporting Services, and Full Text Search) 1.7G
    SQL Server Express (Containing only the database engine) 133MB 
    • #
      ‫۱۰ سال و ۷ ماه قبل، جمعه ۲ اسفند ۱۳۹۲، ساعت ۲۲:۲۴
      نگارش‌های اکسپرس و local db رایگان هستند. نگارش CE یا Compact edition نیز رایگان است. سایر نگارش‌ها خیر. بنابراین خیلی‌ها در سراسر دنیا بر این اساس تصمیم گیری می‌کنند. نگارش CE داخل پروسه برنامه اجرا میشه و تا 4 گیگ دیتا داخلش می‌تونید ذخیره کنید. نگارش اکسپرس تا 12 گیگ محدودیت داره. سایر نگارش‌ها محدودیتی ندارند. خلاصه باید به کسب و کار خودتون نگاه کنید. برنامه حسابداری هست که تعداد رکوردهاش تا آخر سال مثلا میشه 10 هزار رکورد؟ نگارش CE براش کافی هست.
      • #
        ‫۱۰ سال و ۷ ماه قبل، شنبه ۳ اسفند ۱۳۹۲، ساعت ۱۴:۴۳
        ممنون،
        برای کاربران نهایی که از ویندوز XP استفاده می‌کنند، آیا نسخه 2008 مناسب هست یا اینکه تا نسخه 2005 باید تنزل کرد؟
        • #
          ‫۱۰ سال و ۷ ماه قبل، شنبه ۳ اسفند ۱۳۹۲، ساعت ۱۴:۴۶
          نگارش 2008 با XP سازگار است. نگارش‌های پس از آن خیر.
  • #
    ‫۱۰ سال و ۷ ماه قبل، شنبه ۳ اسفند ۱۳۹۲، ساعت ۲۱:۴۸
    میشه لطفا روشی را برای نصب خودکار بانک اطلاعاتی بهنگام نصب برنامه‌ی اصلی معرفی نمایید.
    چون در روال عادی برنامه‌های دات نت این کار باید به صورت دستی انجام بشه.
    • #
      ‫۱۰ سال و ۷ ماه قبل، یکشنبه ۴ اسفند ۱۳۹۲، ساعت ۰۱:۱۱

      بهترین کار برای نصب خودکار فایلهای مورد نیاز جهت اجرای برنامه‌های مبتنی بر دات نت ، استفاده از نرم افزارهای ساخت Setup می‌باشد. از قبیل

      1- InstallShield

      2- InstallAware

      3- Advanced Installer

      مورد اول ، از قدیمی‌ترین نرم افزارها و  حرفه ای می‌باشد. ولی متاسفانه در تهیه نسخه به روز آن کمی دچار مشکل خواهید شد.

      مورد دوم ادعای مقایسه با اینستال شیلد را دارد .از عیوبی که من در استفاده از این نرم افزار دیدم میتوان به حجم بالای نرم افزار اصلی اشاره کرد که بیش از دو گیگابایت است و هر دفعه نسخه جدید اومد شما باید مجدداٌ این حجم را دانلود کنید.

      مورد سوم که بهترین گزینه نیز می‌باشد ، بسیار خوش دست و سبک می‌باشد. و به راحتی تمام موارد مورد نیاز جهت اجرای برنامه‌های شما را نصب می‌نماید.

      • #
        ‫۸ سال و ۸ ماه قبل، سه‌شنبه ۱۵ دی ۱۳۹۴، ساعت ۱۴:۴۴
        ایجاد setup با مواردی که بیان کردین درست و مشکلی نیست
        ولی راهی برای ایجاد یوزر و پاس هم برای همون لحظه نصب رو دارید ؟
        در هر صورت وقتی بخواید برای سرور یوزر و پاس در نظر بگیرید حتما باید فرد در محل نصب
        حضور داشته باشه . آیا راهی دارید که همزمان با فرایند نصب برای instance  جدید یوزر و پاس ست شود ؟
        • #
          ‫۸ سال و ۸ ماه قبل، سه‌شنبه ۱۵ دی ۱۳۹۴، ساعت ۱۸:۰۷
          متن را یکبار مطالعه کنید. در مورد ارسال این اطلاعات به فایل setup به صورت سوئیچ‌های اضافی، بحث شده.