قبلاً در توسینسو ایجاد یک پایگاه داده SQL و همچنین جدول و رکورد های آن آموزش داده شده است اما در این مطلب بنده میخواهم این کار ها را از طریق خط فرمان CMD آن هم توسط دستو SQLCMD انجام دهم ، اگر SQL Management Studio روی سیستمتان نصب نیست شما میتوانید ازمحیط دوست داشتنی و پر کاربرد cmd و دستور sqlcmd کار های خود را پیش ببرید
برای قدم اول باید command prompt رو باز کنیم در خدابیامرز Xp به Run رفته و دستور CMD را تایپ و اینتر میزدیم ، از اون خدابیامرز به بعد از منوی محبوب Start داخل کادر جستجو دستور cmd را تایپ کرده و دکمه Enter را بزنید. (البته این ساده ترین راه ممکنه بود)
وقتی وارد CMD شدیم از دستور sqlcmd جهت اتصال به SQL Server استفاده میکنیم این دستور چند سوئیچ دارد که در تصویر زیر به صورت جدولی مختصر آن را آماده کردم(تصویر زیر را ببینید)
در تصویر فوق مشاهده میشود که میتوان با چه سوئیچ هایی به سرور اتصال پیدا کنیم توضیحات بیشتر را در تصویر فوق و ادامه این مطلب خواهید دید ، همانطور که حتماً با SQL آشنا هستید برای اینکه به سرور مورد نظر بخواهیم وصل شویم باید نام آن را بدانیم به صورت پیشفرض خیلی ها از نام SQLEXPRESS استفاده میکنند ضمناً ممکن است شما برای ورورد به SQL نام کاربری و پسورد در نظر گرفته باشید در تصویر زیر شما توسط دستور SQLCMD به سرور SQLEXPRESS با یوزر اکانت sa و پسوردی که از قبل زدیم به سرور مورد نظر اتصال پیدا میکنیم
اما اگر SQL شما دارای یوزر و پسورد نیست و میخواهید از طریق ویندوز اعتبار سنجی صورت پذیرد همانند تصویر زیر کار کنید و مشاهده میکنید پس از دستور زیر با هیچ ارروری مواجه نمیشوید و میتوان ادامه کار را انجام داد که در همین مطلب به آن خواهیم پرداخت.
سوئیچ S– : ما توسط این سوئیچ میتوانیم به سرورمان متصل شویم و اگر از این سوئیچ استفاده نکنیم با خطا مواجه خواهیم شد در روبروی این سوئیچ باید نام یا IP سیستمی که سرور SQL در آن قرار دارد را تایین کنیم ، راه ساده تر این ماجرا این است که پس از تایپ سوئیچ مورد نظر بعد بعد از گذاشتن یک علامت نقطه کلمه SQLEXPRESS را تایپ کنید.
میخواهیم توسط دستورات یک Database با نام DBAITPRO ایجاد کنیم سپس یک جدولبه نام WEB داخل آن ایجاد کرده و فیلد هایی را داخل ان به ثبت برسانیم
1> CREATE DATABASE DBAITPRO
با زدن دستور فوق اتوماتیک یک خط به پایین میآید و منتظر دریافت دستور دوم می ماند و دستور بعدی ما GO است که این بانک با این نام ساخته میشود و مجدد به خط اول میرود (تصویر را ببینید)
خب در ادامه میخواهیم به بانک مورد نظر توسط خود برنامه SQL برویم و ببینیم آیا دستور ما کار مورد نظر را انجام داده یا خیر برای این منظور SQL Server 2014 Management Studio را اجرا کرده و مطابق تصویر زیر پایگاه مورد نظر را Connect میکنیم:
همانطور که فلش ها نشان میدهند میبینیم پایگاه داده ما ایجاد شده و در table ما هیچ جدولی به ثبت نرسیده است میخواهیم توسط همان sqlcmd اقدام به ایجاد جدولی به نام web کنیم.
برای ایجاد جدول WEB که شامل سه فیلد است بهتر است در ابتدا از ایجاد Database مطمئن شویم دستور زیر این کار را برای ما خواهد کرد:
اگر با پیغامی که در تصویر فوق مشاهده میکنید مواجه شدید این به دان معنا است که این Database ایجاد شده و آماده تغییرات است حال میخواهیم جدول WEB را ایجاد کنیم. دستور زیر را مینویسیم:
جدول ایجاد شده دارای4 ستون می باشد. ستون اول ID است، که آن را به عنوان کلید اصلی و از نوع int تعریف کرده ایم. دیگر ستون های آن به ترتیب عبارتند از NAME که اسم سایت است و DOMAINNAME که منظور من همان پسوند سایت هست مثلاً IR یا COM و ردیف بعدی country است که منظور کشور مورد نظر است البته این فقط مثالی است که خدمتتان گفتم پس از دستورات فوق که در تصویر دیدید جدولمان در SQL به صورت زیر ایجاد خواهد گردید.
اگر دقت کرده باشید id را از نوع identity وارد کردیم یعنی ID اتوماتیک به صورت یکی یکی خودش اضافه میشود و نیازی نیست ما عددی برای آن تعیین کنیم دستور زیر را وارد میکنیم و با خطایی روبرو خواهیم شد با هم این خطا را بررسی و سپس دستور صحیح را وارد میکنیم:
پس از تایپ دستورات فوق جهت ایجاد رکورد در جدول مورد نظرمان با خطای زیر مواجه میشویم و به همین خاطر رکورد های مورد نظر در جدولمان درج نمیشوند راه حل این است که یا فیلد ID را از حالت identity خارج کنیم یا در هنگام Value دادن به جدول از نام بردن ID خودداری کنیم و بگذاریم خودش پر شود.
Msg 544, Level 16, State 1, Server RIPI12160, Line 1 Cannot insert explicit value for identity column in table 'WEB' when SERT is set to OFF.
در تصویر زیر کد اصلی را قرار خواهم داد پس ID را از لیست حذف میکنیم و اصلاً به جای آن عددی قرار نمیدهیم تا خود SQL آن را به صورت Counter پر کند.
توسط دستور INSERT INTO ما میتوانیم چندین رکورد را به صورت یکجا وارد کنیم، همانطور که میبینید تمام رکوردها در داخل پرانتزی قرار گرفته شده و هر رکورد توسط کاما از رکورد دیگر جدا شده و اگر میخواهید رکورد ها ادامه پیدا کند در انتهای خط توسط علامت (,) ادامه کار را انجام دهید و در پایان توسط دستور GO به ثبت برسانید دقت کنید که کاما ها (')و علامت (,) را به دقت جایگذاری کنید تا با خطا مواجه نگردید ، پس از درج کد فوق عملیات با موفقیت به پایان میرسد و با پیغام (3 rows affected) پایان میپذیرد این پیغام نشان میدهد چند رکورد با موفقیت به ثبت رسیده است حالا نگاهی داریم به جدولمان در SQL Server تصویر زیر را نگاه کنید:
یکی از دستورات ساده پرس و جو را در این مطلب به شما خواهم گفت ، برای اینکه کلیه فیلد های مربوط به ستون های id و name و domainname جدول web را به صورت یکجا نمایش دهد در sqlcmd می توانید از دستور SELECT مطابق تصوی زیر استفاده نمایید.
راه حل های متفاوتی میتونه برای این کار داشته باشیم اما یکی از ساده ترین راه ها و متفاوت با صحبت هایی که در بالا داشتیم به این صورت است که (یک فایل NotePad باز کنید و پس از تایپ دستورات زیر آن را با پسوند Sql ذخیره کنید).
سپس یک BATCH FILE (یک فایل NOTEPAD را با پسوند BAT ذخیره کنید) ایجاد میکنیم و دستور زیر را داخل آن تایپ و با یک نامی به دلخواه ذخیره میکنیم سپس با اجرای فایل bat دیتابیس به Sql Server مورد نظر Attach میشود .
sqlcmd -S ServerName\InstanceName - i D:\ آدرس فایل
کارشناس ارشد شبکه مایکروسافت
فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود