بررسی Performance دستورات SQL Server
در اینجا سلسله مباحث آموزشی در مورد ساختار فیزیکی فایلهای MDF و بررسی جزئی تر به نحوه ذخیره سازی اطلاعات ، بررسی Query ها ، جداول ، ایندکسها و... مطرح خواهد شد.
در اینجا سلسله مباحث آموزشی در مورد ساختار فیزیکی فایلهای MDF و بررسی جزئی تر به نحوه ذخیره سازی اطلاعات ، بررسی Query ها ، جداول ، ایندکسها و... مطرح خواهد شد.
این کلاسها شامل دوره های دات نت و SQL Server هست که از مبتدی تا پیشرفته رو شامل میشه.
دوستانی که تمایل دارند ایمیل و نظرشونو بفرمایند تا در صورت توافق این کلاسها راه اندازی بشه.
در داخل Management Studio دکمه New Query رو بزنید. در کادر باز شده باید از دستورات زیر استفاده کنید.
DBCC ShrinkFile
DBCC ShrinkDatabase.
ساختار دستوری DBCC ShrinkFile
DBCC SHRINKFILE
(
{ file_name | file_id }
{ [ , EMPTYFILE ]
| [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
}
)
[ WITH NO_INFOMSGS ]
File_Name
نام فایل برای Shrink کردن.
File_Id
شماره Id فایل برای Shrink کردن. با استفاده از تابع سیستمی File_IDEX یا گرفتن Query از Sys.Database_Files میتوانید این شماره را بدست بیارید.
Target_Size
سایز فایل به مگابایت هست که بعد از shrink کردن باید به این مقدار برسد.این مقدار از نوع صحیح می باشد. اگر این عدد مشخص نشود ، خود SQL Server سایز فایل را به مقدار اولیه فایل ، که زمان ایجاد دیتابیس مشخص کردیم برخواهد گرداند.
توجه : شما میتوانید با استفاده از همین دستور مقدار اولیه فایل را کاهش بدید. مثلا اگر زمان ایجاد دیتابیس مقدار اولیه را 5 مگابایت تنظیم کردید میتوانید به 3 مگابایت کاهش بدید در صورتی که دیتابیس خام باشد و هیچ اطلاعاتی وارد آن نشده باشد.
EMPTYFILE :
منتقل کردن تمام اطلاعات از یک فایل به فایل خاص دیگر در یک Filegroup یکسان.
Notrauncate :
منتقل کردن Page های اختصاص یافته از اخر فایل DATA به فضای اختصاص نیافته ابتدای فایل با تعیین کردن یا تعیین نکردن Target_Percent . فضای آزاد در انتهای به سیستم عامل برنخواهد گشت. و سایز فیزیکی فایل تغییر نخواهد کرد. بنابراین ، با مشخص کردن این گزینه ، فایل به نظر میاید Shrink نشده است.
NOTRUNCATE فقط روی فایل های Data قابل اجراست و روی فایل Log اثری ندارد.
TRUNCATEONLY :
رهاسازی فضای آزاد انتهای فایل و برگرداندن به سیستم عامل، ولی هیچ جابجایی Page در داخل فایل صورت نمی گیرد. فایل data به آخرین Extent اختصاص داده شده Shrink خواهد شد.
Target_size در این دستور کارایی ندارد.
این دستور فقط روی فایل data اثر دارد.
With No_Infomsgs:
پیغامهای اطلاعاتی را نمایش نمی دهد.
توضیحات :
DBCC SHRINKFILE فقط روی فایلهای دیتابیس در حال استفاده کارایی دارد. برای تغییر دیتابیس در حال استفاده میتوانید از دستور Use استفاده کنید.
زمانی که اجرای آن با موفقیت انجام نشود ، خطا برمیگرداند.
دیتابیس در حال Shrink در Single-User نیست. و کاربران میتوانند با دیتابیس درحال Shrink شدن کار کنند.نیازی نیست برای Shrink کردن دیتابیسهای سیستمی SQL Server را به Single_User Mode ببرید.
مثال :
Shrink کردن یک فایل Data به یک حجم خاص :
USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO
Shrink کردن فایل LOG به یک حجم خاص :
USE AdventureWorks2008R2;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE AdventureWorks2008R2
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (AdventureWorks2008R2_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE AdventureWorks2008R2
SET RECOVERY FULL;
GO
دستور DBCC ShrinkDatabase :
DBCC SHRINKDATABASE
( database_name | database_id | 0
[ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)
[ WITH NO_INFOMSGS ]
ساختار این دستور مطابق دستور DBCC ShrinkFile هست فقط به جای نام فایل اینجا باید نام دیتابیس یا ID دیتابیس را بنویسید.
برای Shrink کردن تمامی فایلهای DATA,LOG باید از این دستور استفاده کرد و برای Shrink کردن یک فایل خاص باید از دستور DBCC ShrinkFile استفاده کرد.
برای اجرای این دستور نیاز به دسترسی sysAdmin یا db_Owner می باشد.
Shrink یک دیتابیس به یک درصد خاص از فضای آزاد:
DBCC SHRINKDATABASE (UserDB, 10);
GO
وقتی Recovery Model روی Full باشد ابتدا باید از دیتابیس یک Full Backup گرفته و بعد از دیتابیس یک Log Backup تهیه کنید.
برای تهیه یک Full&Log Backup روی دیتابیس مورد نظر راست کلیک کنید.
با انتخاب Backup پنجره زیر نمایش داده می شود.
از منوی Recovery Type ابتدا گزینه Full را انتخاب کرده و سپس از دیتابیس یک Full Backup تهیه کرده و مجدد روی دیتابیس راست کلیک کرده و از منوی Backup در Backup Type گزینه Transaction Log رو انتخاب کرده و یک Log Backup تهیه کنید. پس از آن روی دیتابیس مجدد راست کلیک کرده و از منوی Tasks-Shrink-File رو انتخاب می کنید.
با انتخاب این گزینه پنجره زیر نمایش داده می شود.
از منوی File Type گزینه Log رو انتخاب کرده و Ok رو بزنید. با اینکار Shrink انجام خواهد شد.
نیازی نیست روی File Data اینکار صورت بگیرد. زیرا فضای گرفته شده توسط هارد مجدد توسط اطلاعات وارد شده پر خواهد شد.
اگر Recovery Model دیتابیس روی Simple هست نیازی به تهیه Backup از دیتابیس نیست و میتوان دیتابیس رو مستقیما Shrink کرد.
سلام.
امروز میخوام توضیح مختصری در مورد Recovery Model دیتابیس بدم و اینکه چطوری از افزایش حجم فایل LOG جلوگیری کنیم.
ما در دیتابیس سه نوع Recovery Model داریم. Full-Simple-Bulk Logged .
مدل Full :
در این مدل تمامی عملیات کاربر در فایل Log ذخیره خواهد شد و این عملیات شامل تغییراتی هست که بر روی اطلاعات در داخل دیتابیس انجام خواهد شد.
این روش زمانی کاربرد دارد که حساسیت اطلاعات بالا بوده و میخواهیم میزان از بین رفتن اطلاعات رو به حداقل زمان ممکن کاهش بدیم. در این روش فایل Log افزایش پیدا خواهد کرد و برای اینکه حجم انرا کم کنیم باید از دیتابیس Log Backup تهیه کرده و سپس عملیات Shrink رو روی دیتابیس انجام بدیم. اگر بدون تهیه Log Backup دیتابیس رو Shrink کنیم اتفاق خاصی رخ نخواهد داد.
مدل Simple :
در این مدل اطلاعات در فایل Log برای ما اهمیتی ندارند و به محض Commit شدن در فایل MDF بدون تهیه Backup LOG میتوان عملیات Shrink رو انجام داد. این مدل زمانی کاربرد دارد که میزان تغییرات روی اطلاعات در طول روز کم هست یا اطلاعات دارای اهمیت بالایی نیستند که بخواهیم از اطلاعات در هر دقیقه یک Log backup تهیه کنیم. با انتخاب این گزینه و انتخاب Auto Shrink در قسمت options در منوی Database Properties خودبه خود عملیات Shrink روی دیتابیس انجام خواهد شد و فایل Log همیشه در یک سایز اولیه باقی می ماند.
مدل Bulk Logged:
در این مدل عملیاتی که دستور Bulk copy یا Select insert روی دیتابیس اعمال می شوند هیچ Log ذخیره نمی شود که سرعت عملیات این دستورات افزایش پیدا کند و حجم فایل log به صورت تصاعدی بالا نرود. در این روش نیز مانند مدل Full باید اول از دیتابیس یک Log Backup گرفته تا بتوانیم دیتابیس رو Shrink کنیم.
در پست آینده نحوه Shrink کردن دیتابیس هم از طریق Management Studio هم از طریق کدنویسی رو توضیح خواهم داد.
سلام.
اگر هنگام Backup گرفتن از دیتابیس بهتون خطا داد که دیتابیس MSDB با مشکل روبرو شده ولی Backup گیری درست انجام شده است، باید برای رفع مشکل مراحل زیر را طی کنید.
دیتابیس MSDB دیتابیسی هست که تمام کارهای SQL Agent داخل آن ذخیره می شود همچنین تمام History مربوط به Backup و Restore و replication نیز داخل ان ذخیره می شود.
اگر در SQL تنظیمات خاصی برای Backup,Restore یا Replication صورت نگرفته باشد ، میتوان دیتابیس رو از نو ایجاد کرد.ولی اگر دارای تنظیمات خاصی باشد یا Job خاصی تنظیم شده باشد با طی کردن مراحل زیر دیتابیس درست خواهد شد.
Alter Database Msdb set Single_user
Go
Dbcc checkdb('Msdb',Repair_rebuild)
Go
Alter Database Msdb Set multi_user
Go
با این دستورات ابتدا دیتابیس msdb رو به حالت تک کاربره می بریم. برای اینکار حتما باید sql agent غیر فعال شود.
سپس با استفاده از دستور dbcc checkdb تمام دیتابیس چک شده و اگر ایرادی داشته باشه ، اون موارد رفع می شود.
سپس دیتابیس رو دوباره به حالت Multi_user بر می گردانیم.
با اینکار مشکل رفع خواهد شد.
اگر دیتابیس Msdb کلا خراب شده باشد و هیچ backup هم نداشته باشیم و بخواهیم دیتابیس رو از اول ایجاد کنیم باید مراحل زیر رو انجام بدیم:
ابتدا سرویس مربوط به sql server رو stop میکنیم. بعد در منوی Run تایپ کنید cmd. و در پنجره باز شده دستور زیر رو تایپ کنید.
C:\program files\microsoft sql server\mssql\binn\sqlservr.exe –c –t 3604
سپس در یک پنجره جدید
cmd دستورات زیر رو تایپ کنید.
Osql –S . –E –q"sp_detach_db 'msdb'"
سپس از مسیر نصب شده sql server فایلهای دیتابیس msdb که msdbdata.mdf و msdblog.ldf رو حذف کنید یا تغییر نام بدید.سپس دستور زیر رو اجرا کنید.
Osql –S . –E -I"c:\program
files\microsoft sql server\mssql\install\instmsdb.sql"
پس از اتمام دستور sql server رو shutdown کرده مجدد به صورت عادی اونو start کنید.
با اینکار دیتابیس msdb از ابتدا ساخته خواهد شد.
دوستانی که تمایل دارند در دوره های SQl Server 2008 Design@implementation و دوره SQL server 2008 Advanced T-sql شرکت کنند با همراه بنده تماس بگیرند.
هزینه دوره ها به ساعتی 15000 تومان کاهش یافت.
طی روزهای آتی لیست کلاسهای این دوره رو قرار میدهم.
در ادامه مطلب ، ادامه سرفصل دروس SQL Server2008 Administrator خدمتتان ارائه می گردد.
سلام دوستان.
در ادامه مطلب ، بخشی از سرفصل دروس SQL Server 2008 Administrator می باشد که به صورت خصوصی تدریس میکنم.
دوستانی که تمایل داشتند میتوانند با شماره 8014-246-0912 تماس بگیرند.
هزینه کلاس ساعتی 20000 تومان می باشد.مدت زمان کلاس 78 ساعت و 26 جلسه می باشد.
مکان کلاس در خیابان گاندی می باشد.
همچنین امکان برگزاری کلاسها به صورت گروهی برای شرکتها و سازمانها می باشد.
حداکثر ظرفیت کلاسها به صورت نیمه خصوصی حداکثر 3 نفر می باشد.
با تشکر.
Pivot :
این دستور العمل برای تبدیل مقادیر موجود در سطرها به ستونها و استفاده از توابع محاسباتی می باشد و عملیاتی مانند Cross-Tab در Excel را پیاده سازی می کند.
ساختار دستوری به شکل زیر می باشد:
Select Field1,Field2
From(
Table_Source
)
Pivot ( Aggregate Function(Value_Column)
For Pivot Column
In(
) Table Alias
در Select اول فیلدهایی را که در Column_list قسمت Pivot استفاده کرده و فیلدهایی که براساس آن میخواهیم اطلاعات گروه بندی شود را می آوریم.
در قسمت Table_Source که در واقع یک Derived Table هست ، اطلاعات مورد نیاز از جدولی که میخواهیم محاسبات را انجام دهیم فراخوانی می کنیم.
در قسمت Pivot تابع محاسباتی روی یکی از فیلدهای Select دوم صورت خواهد گرفت .
بخش For نام ستونی که میخواهیم مقادیر آن ستون را به ستونهای مختلف تبدیل کنیم می آوریم.
بخش In لیست مقادیری که میخواهیم به ستون تبدیل شود.
برای روشن شدن مطلب به مثال زیر توجه کنید:
یک جدول هدر فاکتور فروش با مشخصات زیر داریم:
Create Table HdrSale
( Id Int,
FactorDate char(8),
Cust_Name Varchar(30)
)
یک جدول ریز فاکتور فروش با مشخصات زیر داریم :
Create Table DetailSale
( Id Int,
IdHdrSale int,
Quantity int,
ProductCode int
)
در جدول اول اطلاعات زیر را اضافه می کنیم :
Insert into Hdrsale
values(1,'89/10/01','Mohammadi'),
(2,'89/10/02','Karimi'),
(3,'89/10/02','Sadeghi'),
(4,'89/10/01','Mohammadi'),
(5,'89/10/02','Karimi')
در جدول دوم اطلاعات زیر را وارد می کنیم :
Insert into DetailSale
Values(1,1,2,10),
(2,1,3,20),
(1,2,10,10),
(1,3,5,20),
(2,3,10,10),
(1,4,5,10),
(2,4,4,20),
(1,5,20,10)
حال اگر Query زیر را اجرا کنیم لیست تمام فاکتورهای مشتری در تاریخ های مختلف را خواهیم داشت .
Select Hs.FactorDate,Ds.Quantity,Hs.Cust_Name
From HdrSale Hs
Inner Join
DetailSale DS
On Ds.IdHdrSale=Hs.Id
حال ما میخواهیم به تفکیک افراد ببینیم در هر روز چه تعداد جنس فروخته شده است.
میخواهیم نتیجه زیر را داشته باشیم:
|
Date |
Karimi |
Sadeghi |
Mohammadi |
|
89/10/01 |
0 |
0 |
14 |
|
89/10/02 |
30 |
15 |
0 |
برای اینکار باید از Pivot استفاده کنیم:
با اجرای Query زیر نتیجه بالا بدست خواهد آمد :
Select FactorDate,Isnull([Karimi],0) as [Karimi],isNull([Mohammadi],0) as [Mohammadi],
IsNull([Sadeghi],0) as [Sadeghi]
From(
Select Hs.FactorDate,Ds.Quantity,Hs.Cust_Name
From HdrSale Hs
Inner Join
DetailSale DS
On Ds.IdHdrSale=Hs.Id
) As A
Pivot
(Sum(A.Quantity)
For Cust_Name In([Karimi],[Mohammadi],[Sadeghi])
) As B
Order by FactorDate
در Select دوم که داخل From هست هر فیلدی که از جداول بیاریم مانند فیلدهای جلوی Group By می ماند و نتیجه Query بدست آمده تغییر خواهد کرد. به طور مثال اگر فیلد Hs.id نیز اضافه شود دیگر نتیجه فوق را نخواهیم داشت و Sum براساس Group By براساس فیلدهای تاریخ و Id خواهد بود.
دستور Select:
در زیر ساختار بسیار ساده دستور Select را ملاحظه می کنید.
SELECT select_list
FROM table_list
Select_list شامل فیلدهایی می شود که میخواهیم از جدول مربوطه فراخوانی کنیم. اگر به جای نام فیلدها از * استفاده کنیم تمام فیلدهای موجود در Table_List را به ما نمایش میدهد.
Table_List شامل جداول و یا View هایی هست که ما میخواهیم اطلاعات را از آنها فراخوانی کنیم.
در مثال زیر با استفاده از دستور select یک سری اطلاعات را از دیتابیس AdventureWorks فراخوانی می کنیم.
USE AdventureWorks
GO
SELECT NationalIDNumber,
LoginID,
JobTitle
FROM HumanResources.Employee
با اجرای دستورات بالا نتیجه ای معادل شکل زیر بدست خواهد آمد.
|
JobTitle |
LoginID |
NationalIDNumber |
|
Chief Executive Officer Vice President of Engineering Engineering Manager Senior Tool Designer … Sales Representative Sales Representative Sales Representative |
adventure-works\ken0 adventure-works\terri0 adventure-works\roberto0 adventure-works\rob0 … adventure-works\rachel0 adventure-works\jae0 adventure-works\ranjit0 |
295847284 245797967 509647174 112457891 ... 668991357 954276278 134219713 |
(290 row(s) affected)
شرح دستور :
خط اول دستور برای تغییر دیتابیس پیش فرض هست. زیرا زمانی که برای اولین بار به SSMS (SQL Server Management Studio ) وصل می شوید پیش فرض Database در حال استفاده هست که در User شما به عنوان Default Database تعیین شده باشد. با این دستور به دیتابیس مورد نظر وصل خواهیم شد.
USE AdventureWorks
GO
خطوط زیر مشخص میکند کدام ستونها به ما نمایش داده شوند.
SELECT NationalIDNumber,
LoginID,
JobTitle
قسمت بعدی که عبارت From می باشد :
این عبارت مشخص می کند اطلاعات باید از چه منبعی فرخوانی شود. در اینجا ما اطلاعات را از یک جدول موجود در دیتابیس فراخوانی کردیم.
عبارت HumanResources.Employee شامل دو قسمت می باشد. قسمت اول نام Schema هست و قسمت دوم نام حقیقی جدول. هر Schema شامل یک سری اشیا می باشد. در درس های آینده نحوه تعریف Schema و کاربرد آنرا توضیح خواهیم داد.
اگر بخواهیم لیست تمامی ستونهای موجود را از یک منبع داده که در جلوی عبارت From آمده است ، فراخوانی کنیم باید از دستور زیر استفاده کنیم :
SELECT *
FROM HumanResources.Employee
نکته بسیار مهم : تا زمانی که نیاز به همه فیلدها نداریم بهتر است از * استفاده نکرده و نام فیلدها را به صورت جداگانه بیاوریم.چون هرچه تعداد فیلدها بیشتر باشد حجم اطلاعات جابجا شده بیشتر خواهد بود که این میتواند به خصوص روی نرم افزارهای تحت شبکه تاثیر به سزایی روی سرعت نرم افزار داشته باشد.همچنین اگر بعد از مدتی یک فیلد به جدول مورد نظر اضافه کنیم به طور ناخودآگاه این فیلد در برنامه ما ظاهر خواهد شد.چون ممکن است این فیلد یک فیلد محاسباتی باشد و نیازی به نمایش آن به کاربر نباشد.
محدود کردن نتیجه یک Query بواسطه عبارت Where.
در یک دستور Select عبارت Where برای محدود کردن نتیجه مورد نظر به کار می رود. شکل ساده دستوری عبارت where در زیر آمده است .
توجه : وقتی عبارتی داخل [] قرار میگیرد منظور این است که وجود آن در دستور اصلی به صورت دلخواه می باشد و نبود آن در اجرای دستور مشکلی ایجاد نخواهد کرد.
SELECT select_list
FROM table_list
[WHERE search_conditions]
Search_conditions ها گزارهایی هستند که مقادیر عبارات را با TRUE , FALSE,UNKHOWN ارزیابی می کنند.
UNKHOWN زمانی ظاهر می شود که در Search_Condition ها به مقدار NULL دسترسی پیدا کنیم.
یک مقدار NULL نه صفر هست نه خالی فقط و فقط شناخته نشده است.همچنین دو مقدار NULL باهم برابر نیستند و نمیتوان بدون یک نتیجه UNKHOWN آنها را باهم مقایسه کرد.
تصمیم دارم در دروس پیوسته از مباحث ابتدایی تا پیشرفته مباحث TSQL یا برنامه نویسی در SQL Server رو آموزش بدم.
دوستانی هم که سوال داشتند در قسمت نظرخواهی بپرسند پاسخ میدم.
با سلام.
در این مطلب قصد دارم نحوه نصب Msde 2000 رو به شما آموزش بدهم.امیدوارم مفید واقع بشه.
اولین کار دانلود این نسخه از سایت مایکروسافت به این آدرسمراجعه کنید.
پس از دانلود با اجرای آن باید مسیری برای آن مشخص کنید تا فایلها را Extract کند.به طور پیش فرض درایو c را انتخاب کنید.
پس از Extract شدن تمامی فایلها . یک فایل setup دارد که به صورت عادی اجرا نخواهد شد و باید دستوراتی برای ان مشخص کنید که در ادامه توضیح خواهم داد.
پارامترها به شرح زیر می باشند.
SAPWD = این پارامتر برای تعیین رمز برای کاربر Sa در sql server می باشد که اگر تنظیم نکنید این کاربر بدون رمز خواهد بود و امنیت پایگاه داده را به خطر خواهد انداخت.پیشنهاد میشود برای ان رمزی تعیین کنید.
INSTANCENAME= نام Sql server هست که باید نامی برای آن تعیین کنید.اگر نامی برای ان تعیین نکنید نام پیش فرض کامپیوتر شما قرار خواهد گرفت. ولی اگر نامی برای آن تعیین کنید برای وصل شدن به sql server باید از شکل computername\instancename باید به سرور وصل بشوید.
مانند : Hamid\Sql2000
که hamid نام کامپیوتر می باشد و sql2000 نام instance هست که موقع نصب تنظیم شده است.
SECURITYMODE=SQL که این پارامتر مشخص میکند که SQL SERVER به صورت MIXED MODE نصب شود که در زمان وصل شدن به پایگاه داده بتوان هم با WINDOWS AUTHENTICATION وصل شد هم با SQL AUTHENTICATION.
TARGETDIR= مسیر فایلهای SQL SERVER مشخص می شود.مقدار آن باید با یک \ خاتمه پیدا کند.برای DEFAULT INSTANCE نام شاخه های ایجاد شده به نام \MSSQL ساخته می شود ولی اگر برای ISNTANCE نامی تعیین کرده باشید نام شاخه به صورت \MSSQL$INSTANCENAME می شود.
DISABLENETWORKPROTOCOLS=0 با تعیین این مقدار شما برای وصل شدن به SQL SERVER از MDAC استفاده خواهید کرد که توسط MSDE نصب خواهد شد.
مثال :
Setup SAPWD="PaSSWORDtEST" INSTANCENAME="SQL2000" TARGETDIR="C:\SQLSERVER\" SECURITYMODE=SQL DISABLENETWORKPROTOCOLS=0
امیدوارم این مطلب مفید واقع شده باشه.دوستان اگر سوالی داشتند بپرسند تا پاسخ بدهم.
یاعلی
سلام دوستان.در این پست قصد دارم مقداری در مورد یکی از ابزارهای تحت Command Prompt توضیحی بدم.
OSQL ابزاری است که به شما اجازه میدهد بدون وجود داشتن Enterprise Manager یا Query Analyzer با دیتابیس ارتباط برقرار کنید و بتوانید کارهای خود را انجام دهید.
ساختار این دستور به صورت زیر است:
OSQL -S -E -U -P -d -Q -q
S- نام سروری است که میخواهید با آن ارتباط برقرار کنید
U,P,E این سه پارامتر به نوع ارتباط به سرور برمیگردد
که شما یا با استفاده از windows Authentication میخواهید وصل شوید یا به طریق Sql Authentication
برای وصل شدن به صورت Windows Authenctication شما باید فقط از سوئیچ E- استفاده کنید و سوئیچ های U-,P- نیازی نیست.
و اگر میخواهید به صورت Sql Authentication وصل شوید باید از سوئیچ های U,P استفاده کنید و نیازی به سوئیچ E نمی باشد.
سوئیچ U نام کاربری تعریف شده در قسمت login سرور شما می باشد.
سوئیچ P کلمه عبور آن کاربر می باشد.
سوئیچ E از همان کاربری که به ویندوز وصل شده برای وصل شدن به بانک اطلاعاتی استفاده میکند.
سوئیچ d نام دیتابیس را مشخص میکند.
سوئیچ Q,q نام هردو برای اجرای دستورات می باشند با این تفاوت که اگر از Q استفاده کنید بعد از اجرای دستور از به خود Command prompt برگشته و اگر از q استفاده کنید در داخل دستور osql باقی مانده تا بتوانید دستورات دیگری اجرا نمایید.
نکته بسیار مهم: این دستور به حروف بزرگ و کوچک حساس می باشد.
مثال :
در این روش با استفاده از windows Authentication یک فایل mdf را attach خواهیم کرد.
Osql -S (local) -E -Q"sp_attach_single_file_db 'Test','c:\Test.mdf'"
در این روش با استفاده از Sql Authentication ا زیک جدول اطلاعاتی را واکشی خواهیم کرد.
Osql -S (local) -U sa -P 12345 -d test -Q"select * from table1"
امیدوارم مطلب مفید قرار گرفته باشه . دوستان عزیز سوال یا نکته ای به ذهنشون رسید در بخش نظرات بفرمایند تا پاسخ بدهم.
شب خوش.
باتشکر از بازدید از وبلاگ اینجانب.
در این وبلاگ مطالبی رو پیرامون نگهداری اطلاعات در بانک اطلاعاتی sql Server عرض خواهم کرد.
مطالبی رو در خصوص بررسی Performance دیتابیس و اینکه چطور Performance گزارشاتتان افزایش دهید بیان خواهم کرد.
در صورتی که سوالی داشتید میتوانید با بنده تماس بگیرید.
اگر فایلهای دیتابیس شما خراب شد میتوانید با اینجانب تماس بگیرید تا راهنمایی تان کنم.
آماده بستن قرارداد در زمینه مشاوره در زمینه بررسی وضعیت فعلی سرور و دیتابیس ها و همچنین ارائه راهکارها با موسسات مختلف می باشم.
همچنین دوستانی اگر در زمینه برنامه نویسی با زبان Delphi سوال داشتند می توانند مطرح کنند تا پاسخ دهم.
آماده برگزاری کلاسهای آموزشی Delphi , Sql Server نیز میباشم.