PDA

View Full Version : آموزش: استفاده از دستورات SQL در Command Line بدون استفاده از Management Tools



fmehrvarzi
چهارشنبه 09 بهمن 1392, 05:58 صبح
http://www.databasejournal.com/img/2007/01/mak_CLT_image001.jpg

یکی از دوستان مشکلش را در این پست (http://barnamenevis.org/showthread.php?438819-%D8%B3%D9%88%D8%A7%D9%84-%D8%AF%D8%B1%D8%A8%D8%A7%D8%B1%D9%87-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%AF%D8%B1-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%85%D8%B4%D8%AA%D8%B1%DB%8C-(%D8%B6%D8%B1%D9%88%D8%B1%DB%8C)&p=1964284&viewfull=1#post1964284) مطرح کرده بودند
امیدوارم این آموزش کوتاه یک شروع خوبی برای دوستان باشد، برای اطلاعات بیشتر میتوانید به مراجع رجوع کنید:



-----خوب، مسأله چیست؟
زمانی که management روی یک سیستم نصب نیست چطور دستورات SQL را اجرا کنیم

-----چرا نیاز داریم دستورات Command Line یاد بگیریم؟
گاهی وقت ها شما میخواهید این سیستم را روی کامپیوتر مشتریتون نصب کنید و نیازی نیست مشتری از management استفاده کند....

-----مزیت استفاده؟
از طرفی مصرف حافظه هارد هم پایین می آید و آدم هایی که آشنایی مقدماتی دارند نمیتونند با سی کیو ال ور برند و دستکاریش کنند....
آیا میشود تمام کارها را بدون management انجام داد ؟
بله! البته با چند دستور ساده! تمام کارها مثل اتچ کردن، بک آپ گرفتن، دیتچ کردن، ریستور کردن، کوئری نوشتن و ....




مقدمه :
----------------------------------
1- باز کردن SQL سرور کامند لاین تولز:
----------------------------------

1- روش اول:
بروید به این مسیر توی کامپیوتر

C:\Program Files\Microsoft SQL Server\110\Tools\Binn
sqlcmd.exe را اجرا کنید

2- روش دوم:
ابتدا پنجره cmd ویندوز را باز کنید( میتونید توی ران cmd تایپ کنید و اینتر بزنید)
این دستور برای راهنمای استفاده SQLCMD می باشد:

SQLCMD/?
سپس دستور زیر را اجرا کنید

sqlcmd -shome -e
home نام سرو شماست که نام کامپیوتر هست و -e به معنای استفاده از Windows authentication هست.


----------------------------------
2-نمونه اجرای دستور SQL (بخوانید سی کیو ال و نه اس کیو ال) در SQL Command Line Tools:
----------------------------------
این دستور را تایپ کنید و سپس اینتر را بزنید(این دستور نام کامپیوتر را نشان میدهد)

SELECT @@SERVERNAME
بعد از زدن اینتر ، دستور go را بزنید و سپس اینتر (این دستور ، دستورات خط های قبلی را اجر میکند)
go
با زدن دستور quit از SQL خارج میشوید:

quit

یک مثال دیگر

C:\Program Files\Microsoft SQL Server\90\Tools\Binn>
SQLCMD -SHOME\SQLEXPRESS -Usa -P******
1> select @@servername
2> Select @@version
3> go
SQLEXPRESS نام Instance شما برای حالت اکسپرس است.اگر اس کیو اصلی را نصب کرده باشید این نام به صورت پیشفرض MSSQLSERVER هست.
و در آن -U و -P به معنی استفاده از SQL authentication است.


----------------------------------
3- اتچ کردن یک دیتا بیس با استفاده از کامند لاین تولز
----------------------------------

برای اتچ کردن میتوانید این دستور را بکار برد:

sqlcmd -S Server\Instance
که در آن Server نام کامپیوتر , instance نام اینستنس که به صورت پیشفرض MSSQLSERVER هست: (http://technet.microsoft.com/en-US/library/ms143744(v=SQL.90).aspx)

و سپس میتوانید این دستورات را بکار ببرید:
USE [master]
GO
CREATE DATABASE [database_name] ON
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\<database name>.mdf' ),
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\<database name>.ldf' )
FOR ATTACH ;
GO

که در آن database_name نام دیتابیسی است که میخواهید اتچ کنید هست،
FileName هم مسیر و اسم دیتابیس و فایل لاگی هست که قرار هست اتچ شوند
دستور For ATTACH هم دستوریست که به سیستم میگوید که این دیتابیس رو اتچ کن

برای چک کردن اینکه دیتابیس اضافه شده یا نه هم این دو دستور
select name from sys.databases
go

منابع:
http://www.ehow.com/how_6772765_run-sql-command-prompt.html (http://www.ehow.com/how_6772765_run-sql-command-prompt.html)
http://www.databasejournal.com/features/mssql/article.php/3654176/SQL-Server-2005-Command-Line-Tool-147SQLCMD148-150-Part-I.htm
http://msdn.microsoft.com/en-us/library/ms165673.aspx (http://msdn.microsoft.com/en-us/library/ms165673.aspx)

خوشتان آمد لایک یادتون نره!