PDA

View Full Version : چطوری میشه از دیتابیسی که با SqlServer 2008R2 ساختم رو اسکریپت بگیرم و تارکت رو بزارم رو 2008



Mofid.m
یک شنبه 17 اسفند 1393, 15:28 عصر
درود به همه دوستان
من یه دیتابیس ساختم با SqlServer 2008R2 و حالا میخوام ازش اسکریپت بگیرم.
مراحل ساخت اسکریپت رو به این شکل میرم.
روی دیتابیس راست کلیک می کنم و Tasks>>Generate Scripts رو میزنم پنجره Generate and Publish Scripts باز میشه و با زدن دکمه Next و انتخاب کل دیتابیس (رادیو باتن Script entire database and all database object) و زدن دکمه Next به قسمت بعد میرم.
تو قسمت Output Type روی رادیو باتن Save scripts to a specific location کلیک میکنم و در کادر پایین با انتخاب Save to file و زدن دکمه advanced پنجره زیر باز میشه و این تنظیمات رو براش مشخص کردم

129279

و با اتمام مراحلش فایل من ساخته میشه
با پاک کردن دیتابیس و ساخت Query جدید و کپی کردن تمام دستورات فایل اسکریپت توی اون میخوام DataBase من به نسخه 2008 برگرده
با اجرای این کوری دیتابیسی که قبلا پاک کرده بودم ساخته میشه ولی بازم انگاری همون نسخه 2008R2 هستش.
مراحلشو درست رفتم؟

برناممو که اجرا میکنم پیغام میده که دیتابیسم از نسخه 661 هستش و میگه باید نسخش باشه 655 با پایین تر.

SabaSabouhi
یک شنبه 17 اسفند 1393, 21:13 عصر
سلام
این script رو کجا اجرا کردی؟ اگه روی یه نسخه‌ی SQL Server 2008 اجرا کنی، دیتابیس ساخته می‌شه و نسخه‌ی اون هم درسته.
اما احتمالاً این script رو روی نسخه‌ی 2008R2 اجرا کردی و دیتابیس رو منتقل کردی ( با توجه به توصیحی که دادی )
مطمئن باش اگه script رو روی یک سرور 2008 اجرا کنی، دیتابیس با همون نسخه‌ی 2008 ساخته می‌شه.

من دیتابیس خودم نسخه‌ی 2014 هست. اما برای 2008 script رو می‌سازم.
و هیچ مشکلی هم پیش نمیاد

صبا صبوحی

Mofid.m
دوشنبه 18 اسفند 1393, 07:38 صبح
سلام آقای صبوحی... سپاس بابت وقتی که گذاشتین.
راستش از قبلش حدس میزدم جواب سوال خودمو فقط از شما بگیرم.
بله درسته من تو خود 2008R2 اجراش کردم.
و دیتابیسی که ساخته شد رو کنا فایل اجرایی برنامم کذاشتم و فکر میکردم که مشکل حل شده.
اما نشد.
دلیل من بابت این کار اینه که بعد نصب SQL EXPRESS روی سیستم مشتری بتونم این دیتابیس رو بهش اتچ کنم.
چند باری با خود SQL EXPRESS سعی کردم اون اسکریپت رو اجرا کنم که نشد.
یه سوالی هم که ذهنمو مشغول کرده اینه که اگر من SQL EXPRESS 2012 رو موقع نصب نرم افزار نصب کنم و همین دیتابیس خودمو(SQL SERVER 2008R2) رو بهش اتچ کنم!!! دیگه مشکل ورژن ندارم!!! پس مشکلی نباید باشه!!!؟

SabaSabouhi
دوشنبه 18 اسفند 1393, 13:24 عصر
سلام آقای صبوحی... سپاس بابت وقتی که گذاشتین.
راستش از قبلش حدس میزدم جواب سوال خودمو فقط از شما بگیرم.
بله درسته من تو خود 2008R2 اجراش کردم.
و دیتابیسی که ساخته شد رو کنا فایل اجرایی برنامم کذاشتم و فکر میکردم که مشکل حل شده.
اما نشد.
دلیل من بابت این کار اینه که بعد نصب SQL EXPRESS روی سیستم مشتری بتونم این دیتابیس رو بهش اتچ کنم.
چند باری با خود SQL EXPRESS سعی کردم اون اسکریپت رو اجرا کنم که نشد.
یه سوالی هم که ذهنمو مشغول کرده اینه که اگر من SQL EXPRESS 2012 رو موقع نصب نرم افزار نصب کنم و همین دیتابیس خودمو(SQL SERVER 2008R2) رو بهش اتچ کنم!!! دیگه مشکل ورژن ندارم!!! پس مشکلی نباید باشه!!!؟

سلام
چون اصولاً هیچ وقت طرف‌دار Attach کردن نبودم راستش نمی‌دونم مشکلی پیش بیاد یا نه. اگه backup بگذاری و restore کنی، قطعاً مشکلی پیش نمیاد
چون من قبلاً این کار رو می‌کردم. ( نمی‌دونم چرا هیچ وقت دوست نداشتم Attach , Detach کنم )
اما الان به هیچ عنوان هیچ‌کدوم از این دو روش رو انجام نمی‌دم.
دوست عزیز، شما که script گرفتی دیگه چرا دیتابیس رو آماده تحویل می‌دی؟ خوب هنگام نصب دیتابیس رو بساز با همون script که داری.
دیگه هم لازم نیست نگران نسخه‌ی SqlServer باشی. مشتری هر چی داشته باشه از 2005 تا 2014 دیتابیس ساخته می‌شه. مگه این
که از چیزهایی استفاده کنی که تو بعضی نسخه‌ها وجود نداره که باید این رو تو مستندات نرم‌افزارت قید کنی.
مثلاً من از نوع داده‌ی date استفاده می‌کنم که تو 2005 نیست و از 2008 اضافه شده. این رو تو مستندات قید کردم که حداقل نسخه باید
2008 باشه. دیگه هم کاری ندارم که طرف Express Edition داره یا LocalDb یا Enterprise Server و باز هم کاری ندارم که نسخه‌ی 2008 هست
یا حتا 2014.

صبا صبوحی

Mofid.m
دوشنبه 18 اسفند 1393, 14:34 عصر
سلام
چون اصولاً هیچ وقت طرف‌دار Attach کردن نبودم راستش نمی‌دونم مشکلی پیش بیاد یا نه. اگه backup بگذاری و restore کنی، قطعاً مشکلی پیش نمیاد
چون من قبلاً این کار رو می‌کردم. ( نمی‌دونم چرا هیچ وقت دوست نداشتم Attach , Detach کنم )
اما الان به هیچ عنوان هیچ‌کدوم از این دو روش رو انجام نمی‌دم.
دوست عزیز، شما که script گرفتی دیگه چرا دیتابیس رو آماده تحویل می‌دی؟ خوب هنگام نصب دیتابیس رو بساز با همون script که داری.
دیگه هم لازم نیست نگران نسخه‌ی SqlServer باشی. مشتری هر چی داشته باشه از 2005 تا 2014 دیتابیس ساخته می‌شه. مگه این
که از چیزهایی استفاده کنی که تو بعضی نسخه‌ها وجود نداره که باید این رو تو مستندات نرم‌افزارت قید کنی.
مثلاً من از نوع داده‌ی date استفاده می‌کنم که تو 2005 نیست و از 2008 اضافه شده. این رو تو مستندات قید کردم که حداقل نسخه باید
2008 باشه. دیگه هم کاری ندارم که طرف Express Edition داره یا LocalDb یا Enterprise Server و باز هم کاری ندارم که نسخه‌ی 2008 هست
یا حتا 2014.

سلام
بازم سپاس...
میشه با دستورات SQL از دیتابیس اسکریپت گرفت؟ یا حتما باید ویزاردی باشه؟
مثلا یه Query ایجاد کنم و دستور رو بنویسم و اسم فایل ، مسیرشو، تارگت و ... رو بدم برام اسکریپت بسازه.
اگه جواب مثبته، ساختار دستور به چه شکله؟

سوال دوم اینه که میشه تو خود برنامم بیام محتوای اسکریپت رو بخونم و به این روش اجراش کنم تا در صورت نبود دیتابیس ارونو بسازه؟

SabaSabouhi
سه شنبه 19 اسفند 1393, 01:55 صبح
سلام
بازم سپاس...
میشه با دستورات SQL از دیتابیس اسکریپت گرفت؟ یا حتما باید ویزاردی باشه؟
مثلا یه Query ایجاد کنم و دستور رو بنویسم و اسم فایل ، مسیرشو، تارگت و ... رو بدم برام اسکریپت بسازه.
اگه جواب مثبته، ساختار دستور به چه شکله؟

سوال دوم اینه که میشه تو خود برنامم بیام محتوای اسکریپت رو بخونم و به این روش اجراش کنم تا در صورت نبود دیتابیس ارونو بسازه؟

سلام
پاسخ به پرسش نخست: نمی‌دونم، اما گمان نکنم هم‌چنین چیزی وجود داشته باشه.
پاسخ به پرسش دوم: بله می‌تونی، من همین‌کار رو می‌کنم. تاره من یک Script برای کل دیتابیس نمی‌گیرم. چون تجربه تداخل ساخت جدول‌ها رو دارم
و دوست ندارم که این‌طوری بشه. منظورم اینه که اگه توی Script جدول یک به جدول دو نیاز داشته باشه، باید حتماً بعد از جدول دو ساخته بشه.
گویا این مشکل الان حل شده، اما قبلاً اینطوری نبود و Sql به ترتیب درست اون‌ها رو لیست نمی‌کرد، من هم خودم این ترتیب رو ایجاد می‌کنم
و دونه دونه، جدول به جدول دیتابیس رو می‌سازم.
البته این رو هم اضافه کنم که من از دیتابیس script نمی‌گیرم و اون‌ها رو خودم می‌نویسم.

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

صبا صبوحی

Mofid.m
سه شنبه 19 اسفند 1393, 11:35 صبح
سلام آقای صبوحی... تشکر
شما مگه وقتی از برنامتون ستاپ میسازین نسخه SQL رو همراه ستاپ به مشتری نمیدین?
من الان برای برنامم ستاپ ساختم و در یه کامپیوتر دیگه امتحانی نصب کردم.
اگه ستاپ رو با SQL Express بسازم برنامم نمیتونه با دیتابیسم ارتباط برقرار کنه.
یه بارم اومدم ستاپ رو بدون Sql ساختم و Sql Server رو دستی از روی DVD نصب کردم (البته فقط Engine) اما بازم ارتباط نمیتونم برقرار کنم باهاش.
اما دفعه بعد که اومدم Sql Server رو کاملتر نصب کردم (با Sql Server Management Studio) و رفتم تو Management Studio و خودم دیتابیس رو بهش اتچ کردم (دیتابیسم زمان نصب کنار فایل اجرایی برنامه نصب میشه)، دفعه اول دیتابیس به شکل Readonly اتچ میشه با یه بار دی اتج کردن و اتچ دوباره به شکل کامل(Full) اتچ میشه و حالا برنامم درست کار میکنه.(البته این مشکل رو با ویندوز خانواده 8 دارم، تو ویندوز 7 همون اول کامل اتچ میشه).
حالا اگه بیام دیتابیس رو دی اتچ کنم و برناممو اجرا کنم برنامم خودش دیتابیس رو اتچ میکنه و مشکلی ندارم.
اما نمیدونم چرا دفعه اول این کارو نمیکنه?
من نمیخوام دیتابیس برناممو کسی بتونه ببینه یعنی نمیخوام Mamagement Studio رو نصب کنم.
و موردی دیگه ایی هم که هست من نمیخوام زمان نصب نرم افزار توسط مشتری انو درگیر با پیچیدگی های نصب Sql کنم و بگم بره دیتابیس رو اتچ کنه!!!!!!!

ضمنا اینم اضافه کنم که زمانی که میخوام با Sql Express ارتباط برقرار کنم Connection String ور برای Sql Sexpress تنظیم میکنم.
یعنی به این شکل

SqlConnection SqlCon = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDB.mdf; Database=MyDB; Integrated Security=True; Connect Timeout=30; User Instance=True; Asynchronous Processing=true");

و وقتی هم که با sql server میخوام ارتباط بدم

@"Data Source=(local); AttachDbFilename=|DataDirectory|NiloDB.mdf; Database=NiloDB; Integrated Security=True";

SabaSabouhi
سه شنبه 19 اسفند 1393, 13:01 عصر
سلام آقای صبوحی... تشکر
شما مگه وقتی از برنامتون ستاپ میسازین نسخه SQL رو همراه ستاپ به مشتری نمیدین?

سلام
نه دوست من، ارائه‌ی Sql Server وظیفه‌ی من نیست. از نظر حرفه‌ای و اخلاقی هم من مجاز نیستم یه نسخه‌ی پولی غیر رایگان رو ارائه کنم.
شاید مشتری من خودش یه نسخه‌ی Server رو خریده باشه و بخواد از اون استفاده کنه. یا این که از نسخه‌ی موجود در شرکتش بخواد استفاده کنه.
در هر صورت اگر هم نسخه‌ای به مشتری ارائه کنم، روی یک CD جدا از CD نرم‌افزار خواهد بود.



من الان برای برنامم ستاپ ساختم و در یه کامپیوتر دیگه امتحانی نصب کردم.
اگه ستاپ رو با SQL Express بسازم برنامم نمیتونه با دیتابیسم ارتباط برقرار کنه.
یه بارم اومدم ستاپ رو بدون Sql ساختم و Sql Server رو دستی از روی DVD نصب کردم (البته فقط Engine) اما بازم ارتباط نمیتونم برقرار کنم باهاش.
اما دفعه بعد که اومدم Sql Server رو کاملتر نصب کردم (با Sql Server Management Studio) و رفتم تو Management Studio و خودم دیتابیس رو بهش اتچ کردم (دیتابیسم زمان نصب کنار فایل اجرایی برنامه نصب میشه)، دفعه اول دیتابیس به شکل Readonly اتچ میشه با یه بار دی اتج کردن و اتچ دوباره به شکل کامل(Full) اتچ میشه و حالا برنامم درست کار میکنه.(البته این مشکل رو با ویندوز خانواده 8 دارم، تو ویندوز 7 همون اول کامل اتچ میشه).
حالا اگه بیام دیتابیس رو دی اتچ کنم و برناممو اجرا کنم برنامم خودش دیتابیس رو اتچ میکنه و مشکلی ندارم.
اما نمیدونم چرا دفعه اول این کارو نمیکنه?
من نمیخوام دیتابیس برناممو کسی بتونه ببینه یعنی نمیخوام Mamagement Studio رو نصب کنم.
و موردی دیگه ایی هم که هست من نمیخوام زمان نصب نرم افزار توسط مشتری انو درگیر با پیچیدگی های نصب Sql کنم و بگم بره دیتابیس رو اتچ کنه!!!!!!!

ضمنا اینم اضافه کنم که زمانی که میخوام با Sql Express ارتباط برقرار کنم Connection String ور برای Sql Sexpress تنظیم میکنم.
یعنی به این شکل

SqlConnection SqlCon = newSqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDB.mdf; Database=MyDB; Integrated Security=True; Connect Timeout=30; User Instance=True; Asynchronous Processing=true");

و وقتی هم که با sql server میخوام ارتباط بدم

@"Data Source=(local); AttachDbFilename=|DataDirectory|NiloDB.mdf; Database=NiloDB; Integrated Security=True";


فکر کنم اینجا سلیقه‌ای باشه. من ترجیح می‌دم برنامه‌ی Setup من این اطلاعات رو از شخص نصب کننده‌ی برنامه بگیره:
* نام Server که می‌تونه "."، "SqlExpress\."، یه آدرس آی‌پی مثل 192.168.1.100 یا هر چیز دیگه باشه
* نام کاربری و رمز عبور با سطح دسترسی کافی
* نام دیتابیس ( اگه بخوام اجازه بدم که کاربر بتونه از نام پیش‌فرض استفاده نکنه )

سپس میام وصل می‌شم به دیتابیس master و دیتابیس نرم‌افزار خودم رو می‌سازم.
سپس scriptهای مربوط به جدول‌ها و سایر اجزا رو اجرا می‌کنم.
سپس scriptهای مربوط به اطلاعات اولیه‌ی جدول‌ها رو اجرا می‌کنم

و در آخر اون چهار اطلاع اولیه ( نام سرور، نام دیتابیس، نام کاربری و کلمه‌عبور ) رو در app.config ذخیره می‌کنم.

در نرم‌افزار هم با داشتن اون چهار اطلاع connection string رو با کلاس ConnectionStringBuilder می‌سازم

و مثل بنز کار می‌کنه.
توی connection string هم از عبارت AttachDbFilename خوشم نمیاد، احساس موقتی بودن به آدم می‌ده.
من همیشه دیتابیس رو توی Sql Server می‌سازم، و از نام اون استفاده می‌کنم

صبا صبوحی

Mofid.m
سه شنبه 19 اسفند 1393, 13:34 عصر
سلام آقای صبوحی
بازم تشکر از اینه تجربتونو در اختیار ما قرار میدین.
خب این کار که شما انجام میدین خیلی خوبه.
اما من دارم تو شمال کار میکنم.
اینجا مشتری ها 90 درصدشون نمیتونن با کامپیوتر کار کنن. چه برسه که بخوام نرم افزار رو بدون sql بهش بدم. و خودش Sql رو نصب کنه.
پس اگر اینطور باشه همیشه من باید برای نصب نرم افزار برم یا آموزش کاملی برای نصب بهشون بدم.
در مورد اون سوال هم که گفته بودم نمیتونم script رو روی Sql Express اجرا کنم؟
نمیدونم درست اجامش دادم یا نه؟
وقتی نصب میکنم Sql Express رو از منوی استارت روی نرم افزارsql (Import and export Data) رو اجرا میکنم نمیتونم Script رو اونجا اجرا کنم؟

SabaSabouhi
سه شنبه 19 اسفند 1393, 15:35 عصر
سلام آقای صبوحی
بازم تشکر از اینه تجربتونو در اختیار ما قرار میدین.
خب این کار که شما انجام میدین خیلی خوبه.
اما من دارم تو شمال کار میکنم.
اینجا مشتری ها 90 درصدشون نمیتونن با کامپیوتر کار کنن. چه برسه که بخوام نرم افزار رو بدون sql بهش بدم. و خودش Sql رو نصب کنه.
پس اگر اینطور باشه همیشه من باید برای نصب نرم افزار برم یا آموزش کاملی برای نصب بهشون بدم.
در مورد اون سوال هم که گفته بودم نمیتونم script رو روی Sql Express اجرا کنم؟
نمیدونم درست اجامش دادم یا نه؟
وقتی نصب میکنم Sql Express رو از منوی استارت روی نرم افزارsql (Import and export Data) رو اجرا میکنم نمیتونم Script رو اونجا اجرا کنم؟

سلام
مایکروسافت برای غالب نرم‌افزارهاش حالت unattended installation داره، یعنی یه فایل text ایجاد می‌کنی که حاوی پاسخ پرسش‌ها هست
و دیگه برنامه هنگام نصب هیچ پرسشی نمی‌پرسه. حداقل می‌دونم که خود Windows و Office که این رو دارن. به احتمال خیلی زیاد باید
Sql Server و به ویژه Express Edition هم این رو داشته باشن.
یه جستجو بزن ببین اگه پیداش کردی که مساله‌ی نصب Sql Server برات حل می‌شه. ( اگه پیداش کردی به من هم خبر بده ) من متاسفانه الان فرصتش رو ندارم که برگردم.

و دیگه این که برای اجرای Scriptها یه برنامه‌ی کوچیک بنویس که اون‌ها رو به ترتیب اجرا کنه.
من برای رعایت ترتیب یه سری فولدر ساختم که با عددهای 1 تا 9 شروع می‌شه. و توی هر کدوم هم چند تا script هست.
برنامه چون فولدرها رو به ترتیب نام مرتب می‌کنه همیشه scriptهای فولدر 1 قبل از 2 اجرا می‌شن. که مساله ترتیب اجرای اون‌ها رو حل می‌کنه.

یه نگاهی به این دو تا لینک بنداز:
https://msdn.microsoft.com/en-us/library/ms144259.aspx
https://technet.microsoft.com/en-us/library/dd239405(v=sql.110).aspx

صبا صبوحی

Mofid.m
سه شنبه 19 اسفند 1393, 16:43 عصر
سلام



یه جستجو بزن ببین اگه پیداش کردی که مساله‌ی نصب Sql Server برات حل می‌شه. ( اگه پیداش کردی به من هم خبر بده ) من متاسفانه الان فرصتش رو ندارم که برگردم.
چشم حتما، کوچیکترین کاریه که میتونم انجام بدم.

Mofid.m
چهارشنبه 20 اسفند 1393, 17:22 عصر
سلام آقای صبوحی
یه سری مطالب در مورد نصب سایلنتی که گفتین پیدا کردم.
دارم روشون کار میکنم و خبرشو بهتون میدم.
فقط یه سوال
شما چه زمانی اسکریپت های پروژه رو اجرا میکنین؟
من میتونم موقع لود برنامم چک کنم که آیا دیتابیس موجود هست یا نه اگه نبود اجرا کنه.
اما آیا لازمه که این کارو من همیشه موقع لود برنامم انجام بدم؟

SabaSabouhi
پنج شنبه 21 اسفند 1393, 09:07 صبح
سلام آقای صبوحی
یه سری مطالب در مورد نصب سایلنتی که گفتین پیدا کردم.
دارم روشون کار میکنم و خبرشو بهتون میدم.
فقط یه سوال
شما چه زمانی اسکریپت های پروژه رو اجرا میکنین؟
من میتونم موقع لود برنامم چک کنم که آیا دیتابیس موجود هست یا نه اگه نبود اجرا کنه.
اما آیا لازمه که این کارو من همیشه موقع لود برنامم انجام بدم؟

سلام دوست عزیز
خیلی خوبه، گمان کنم با Switch های Q/ و QS/ باید شروع کنی، درسته؟ کار رو که انجام دادی، اینجا بنویس، مطمئن باش
که به درد خیلی‌ها می‌خوره. همه دعات می‌کنن.
درمورد پرسشی که داشتی به نظر من اشتباهه که هنگام load برنامه این رو چک کنی. برای کاری که فقط یک‌بار انجام می‌شه
تو هر اجرا یه سربار ایجاد می‌کنی.
این کار باید تو برنامه‌ی setup انجام بشه و با دسترسی سطح بالا. چون ایجاد دیتابیس نیاز به دسترسی سطح بالا داره در حالی
که برنامه می‌تونه با یه اکانت در حد DatabaseOwner کارش رو انجام بده.
به نظر من این کارها رو به هیچ عنوان توی کد برنامه‌ی اصلی نگذار.

صبا صبوحی

Mofid.m
پنج شنبه 21 اسفند 1393, 17:42 عصر
سلام آقای صبوحی
این سویچ ها مال زمانی هستش که کاربر نخواد مراحل رو ببینه یا بتونه ببینه اما تغییری نتونه بده.
من اومدم یه ConfigurationFile.ini رو تغییراتی توش دادم و یه BatchFile ساختم.
اینها رو کنار فایل ستاپ Sql گذاشتم و با اجرای BatchFile، اس کیو ال نصب میشه.
با تمام تنظیماتی که خودم میتونم براش در نظ بگیرم، مثلا instance جدید و لاگین کردن با یوزر و پسورد...
بدون اینکه کاربر چیزی ببینه.
اما مشکلی که دارم اینه که باید اسم کامپیوتر و نام کاربری ویندوز رو بدونم.
)البته دارم روش کار میکنم، دارم تو MSDN دنبالش میگردم(


درمورد پرسشی که داشتی به نظر من اشتباهه که هنگام load برنامه این رو چک کنی. برای کاری که فقط یک‌بار انجام می‌شه
تو هر اجرا یه سربار ایجاد می‌کنی.
نظر من هم همین بوده، واسم همین پرسیدم.


این کار باید تو برنامه‌ی setup انجام بشه و با دسترسی سطح بالا. چون ایجاد دیتابیس نیاز به دسترسی سطح بالا داره در حالی
که برنامه می‌تونه با یه اکانت در حد DatabaseOwner کارش رو انجام بده.
میشه یکمی بیشتر توضیح بدین.
چطوری توی ستاپ انجامش بدم?
البته من وقتی دنبال موضوع نصب سایلنت بودم یه مطلبی نظرمو جلب کرد که اومده بود در مورد sqlcmd صحبت کرده بود. درباره اتچ کردن و ...
لینک صفحه (http://blogs.msdn.com/b/bethmassi/archive/2008/12/18/attaching-a-local-sql-express-database-using-sqlcmd.aspx)
کنجکاو شدم رفتم در مورد sqlcmd جستجو کردم و از بین اونها این مطلب رو تونستم بگیرم.
لینک صفحه (https://msdn.microsoft.com/en-us/library/ms180944.aspx)
حالا من با خط فرمان ویندوز (cmd) میتونم اسکریپت رو اجرا کنم و میشه برای این هم یه BatchFile نوشت.(تو سیستم خودم امتحان کردم بدون هیچ مشکلی اجرا شد.) اما توی یه سیستم دیگه ایی که ویندوز خانواده 8 داشت اصلا نتونستم sqlcmd رو اجرا کنم.
(البته این موضوع رو هم دارم سعی میکنم برطرف کنم)


البته در مورد نصب سایلنت هم من از لینک هایی که شما گذاشتین و یه سری مطالب خارجی دنبالش گشتم و جریان کار دستم اومد و نصب کردم ولی برای این
مشکلات که دنبال حلشون می گشتم یه سرچ فارسی کردم دیدم یکی از دوستان تو همین سایت به شکل کاملی توضیح داده.
لینک صفحه (http://barnamenevis.org/showthread.php?390659-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D8%B5%D8%A8-%D8%A7%D8%B3%D9%83%D9%8A%D9%88%D8%A7%D9%84-%D8%B3%D8%B1%D9%88%D8%B1-2008-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%D8%B3%D8%A7%D9%8A%D9%84%D9%86%D8%AA)

fakhravari
پنج شنبه 21 اسفند 1393, 19:00 عصر
زمانی که دیتابیس new میسازی ورژن انتخاب میکنی level
اسکریپت یه چیز ثابتیه.
پس یه دیتابیس بسته به ورژنت بساز و اسکریپت توش ران کن

Mofid.m
پنج شنبه 21 اسفند 1393, 23:18 عصر
سلام مشکل نصب سایلنت رو حل کردم.
مشکلم این بود که چون نمیدونستم اسم کامپیوتر و نام کاربری کامپیوتر مقصد چیه، نمیتونستم فایل ini رو برای همه کامپیوتر ها پیکر بندی کنم.
اما الان با کلی جستجو و سعی و خطا حلش کردم.
باید پارامتر زیر رو به این شکل تغییر میدادم
SQLSYSADMINACCOUNTS="BUILTIN\USERS
حالا میمونه اجرای اسکریپت...