در بسیاری از موارد، پس از نصب این برنامه مشاهده نمودم که ابزارهای سمت کلاینت (Client Tools) از قبیل Sql Server Management Studio و Documentations و غیره نصب نشده اند.
در ابتدا تصور می کردم که هنگام نصب این برنامه بی دقتی کرده ام ولی با تکرار این موضوع متوجه شدم که اشکالی در کار وجود دارد.
جالب اینجا بود که هنگامی که DVD این برنامه را مجددا اجرا می کردم و قصد داشتم که مواردی را که نصب نشده بود نصب کنم، برنامه به من اعلام می کرد که تمامی موارد نصب شده اند! در حالی که این موضوع صحت نداشت.
و برنامه اجازه ی نصب مجدد این کامپوننت ها را هم نمی داد. و تنها راه باقی مانده ، حذف کردن این نرم افزار و نصب مجدد آن بود که باز هم نمی توانستم مطمئن باشم که مشکل تکرار نخواهد شد.

تا اینکه سرانجام به سراغ گوگل رفتم و به جستجوی علت این موضوع پرداختم.
در ابتدای جستجو متوجه شدم که این مشکل برای عده زیادی از افراد به وجود آمده و مختص من نیست.
پس از طی چند دقیقه متوجه شدم که این مشکل معمولا برای افرادی به وجود آمده که ابتدا برنامه Visual Studio را نصب نموده اند و سپس به سراغ نصب برنامه SQL Server 2005 رفته اند.
سرانجام به نتایج زیر رسیدم.
پس از نصب برنامه Visual Studio اگر شما نصب گزینه SQLExpress را نیز انتخاب کرده باشید، این برنامه یک پوشه به نام Tools در مسیر زیر ایجاد خواهد نمود. (در این مقاله من فرض کرده ام که برنامه را در درایو C نصب نموده اید)
C:\Program Files\Microsoft SQL Server\90
سپس هنگام نصب نرم افزار SQL Server 2005 ، فایل Setup وقتی متوجه می شود که پوشه tools در این مسیر وجود دارد، فرض را بر این می گذارد که ابزارهای سمت کلاینت از قبیل Sql Server Management Studio نصب شده اند و دیگر این ابزار ها را نصب نمی کند!
البته باید ذکر کنم که شاید این مشکل مربوط به نسخه ای که من نصب می کنم باشد و در نسخه های جدید تر، این مشکل را مایکروسافت رفع نموده باشد.
لذا راه حل زیر جهت رفع این مشکل پیشنهاد می شود.
مشکل:
پس از نصب نرم افزار SQL Server 2005 متوجه شده اید که ابزارهای سمت کلاینت از قبیل Sql Server Management Studio نصب نشده اند.
راه حل :
معمولا داخل فولدر نسخه مورد نظر برنامه در DVD یا CD شما (من نسخه SQL Server 2005 Developer Edition را استفاده می کنم) دو فولدر به نام های Servers و Tools وجود دارند.
داخل پوشه Servers فایل های مروبط به نصب برنامه وجود دارد ولی ما با پوشه Tools کار داریم.
به داخل فولدر های زیر رفته و فایل SqlRun_Tools.msi را اجرا نمایید.
Tools\Setup\
پس از جرای این فایل پس از چند لحظه با دیالوگ زیر مواجه خواهید شد.

گزینه Change Installed Components را انتخاب نموده و با خیال راحت به نصب موارد ناقض SQL Server 2005 بپردازید.
دستور زیر این امکان رو میسر می کنه :
SELECT sum (sysindexes.Rows)
FROM
sysobjects
INNER JOIN sysindexes
ON sysobjects.id = sysindexes.id
WHERE
type = 'U'
AND sysindexes.IndId < 2
دستور زیر می تونه نام تمام جدولهای دیتابیس رو نمایش بده :
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
در ضمن این دستور ثابته و هیچ چیزش رو نباید تغییر بدین
فرض كنید شما یك بانك اطلاعاتی بسیار مهم بر روی یك سرور دارید. اولین روشی كه معمولا برای حفاظت از اطلاعات بانك به ذهن می رسد backup گیری از database می باشد. خب شما معمولا می روید و عملیات backup را در یك job تعریف می كنید و sql server هم بر اساس زمان بندی job شما از database عملیات backup گیری را انجام می دهد. تا اینجا مشكلی نیست اما اگر بروید و در مسیری كه فایل backup را نگهداری می كنید مشاهده می كنید كه شما فقط یك فایل backup دارید و در حقیقت sql server همه backup ها را در همان فایل نگهداری می كند. خب شما اگر فقط به همین یك فایل اكتفا كنید چه پیش خواهد آمد
اگر از backup گیری full استفاده می كنید پس از مدتی حجم این فایل بسیار بزرگ شده و شما مجبور هستید برای كاهش حجم این فایل را جدا كرده و تغییر نام دهید یا فایل را ازآن مسیر برداشته و در جای دیگر كپی كنید. اگر فقط از BACKUP گیری نوع TRANSACTION LOG استفاده می كنید شما مجبور هستید همیشه فایل اولیه را نگه داشته و هرچه زمان طولانی تر شود نگهداری آن هم سخت تر خواهد شد (در بانك های اطلاعاتی بزرگ)
حال فرض كنیم بیاییم و هر backup را در یك فایل كه اسم آن حاوی تاریخ و ساعت زمان backup گیری است ذخیره كنیم با این كار به راحتی می توانیم آنها را مدیریت كرده و آنها را طبقه بندی كنیم . به این مثال توجه كنید
فرض كنید یك بانك با نام db_test داریم دستور backup را به این شكل می نویسیم
BACKUP DATABASE db_test TO DISK = 'G:\bkTEST\backup.bak'
خب حالا می خواهیم این فایل را تغییر نام دهیم كه در ویندوز با دستور RENAME می باشد اما چون در SQL همچین دستوری نداریم. جهت این كار از xp_cmdshell در SQL SERVER استفاده می كنیم.
نكته مهم : این تابع در نسخه 2000 به صورت پیش فرض فعال می باشد اما در نسخه های بعدی جهت بالا بردن امنیت غیر فعال می باشد كه با دستور زیر می توانید آن را فعال كنید
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
GO
جهت غیرفعال كردن مجدد به جای عدد 1 عدد 0 را قرار دهید
خب حالا نوبت به نوشتن دستورات اصلی می باشد برای گرفتن تاریخ و ساعت سیستم از دستور GETDATE استفاده می كنیم و پس از درست كردن دستور در متغیر دستورات را اجرا می كنیم
declare @rename varchar(255)
select @rename ='ren "G:\bkTEST\Backup.BAK" ' + 'Backup'+
replace(ltrim(rtrim(convert(char(15),getDate(),2))),'.','')+'_'+
replace(ltrim(rtrim(convert(char(12),getDate(),8))),':','')+'.bak'
WAITFOR DELAY '00:00:05'
exec master..xp_cmdshell @rename
REVERT
فرمت خروجی فایلی شبیه به صورت زیر خواهد بود
Backup100822_050018.bak
یعنی این فایل در تاریخ 2010/08/22 ودر ساعت 05:00:18 ساخته شده است.
به همین شكل BACKUP های شما از حالت تك فایلی خارج شده و می توانید مدیریت بهتری را اعمال نمایید.
از کلاس HtmlInputFile برای ساختن کنترل آپلود فایل استفاده می کنیم. مثال زیر یک فایل ASPX کامل است که به کاربر این امکان را می دهد که یک تصویر و توضیح آن را آپلود و به بانک اطلاعاتی اضافه کند . متد OnUpload تصویر و توضیح آن را در یک جدول بانک اطلاعاتی SQL Server به نام Pictures در دیتابیس MyData اضافه می کند.
public void OnUpload(Object sender, EventArgs e)
{
int len = Upload.PostedFile.ContentLength;
byte[] pic = new byte[len];
Upload.PostedFile.InputStream.Read (pic, 0, len);
SqlConnection connection = new
SqlConnection (@"server=127.0.0.1;database=MyData;uid=sa;pwd=yourpass");
try
{
connection.Open ();
SqlCommand cmd = new SqlCommand ("insert into Image "
+ "(Picture, Comment) values (@pic, @text)", connection);
cmd.Parameters.Add ("@pic", pic);
cmd.Parameters.Add ("@text", Comment.Text);
cmd.ExecuteNonQuery ();
}
finally
{
connection.Close ();
}
}
چگونه می توانم یک تصویر را از دیتابیس خوانده و در صفحه وب نمایش دهم؟
اینجا من از یک صفحه وب برای نمایش تصویر استفاده کرده ام، کد زیر برای نمایش تصویر در صفحه وب استفاده می شود
private void Page_Load(object sender, System.EventArgs e)
{
MemoryStream stream = new MemoryStream ();
SqlConnection connection = new
SqlConnection (@"server=127.0.0.1;database=MyData;uid=sa;pwd=yourpass");
try
{
connection.Open ();
SqlCommand command = new
SqlCommand ("select Picture from Image", connection);
byte[] image = (byte[]) command.ExecuteScalar ();
stream.Write (image, 0, image.Length);
Bitmap bitmap = new Bitmap (stream);
Response.ContentType = "image/gif";
bitmap.Save (Response.OutputStream, ImageFormat.Gif);
}
finally
{
connection.Close ();
stream.Close ();
}
}
توابع GDI+ ویژگی های پیشرفته زیادی برای مدیریت و دستکاری داده های تصویری پیشنهاد می کنند. مثال این مقاله نگاه سریعی به کارهایی که از طریق فضا نام های System.Drawing.Imaging و System.Drawing می توانید انجام دهید دارد. به عنوان مثال شما می توانید برنامه را برای ذخیره و مدیریت تصاویر بر روی وب گسترش دهید یا می توانید یک برنامه ساده بنویسید که به کاربر امکان ویرایش و دستکاری تصاویر را می دهد.
چگونه از این کدها استفاده کنیم؟
ابتدا یک دایرکتوری مجازی بسازید و فایل های پروژه را در آن قرار بدهید ، سپس رشته اتصال به بانک اطلاعاتی را تغییر دهید ( بر اساس سرور و نام کاربری و کلمه عبور و نام دیتابیس خودتان آن را ست کنید ) حالا می توانید از این پروژه استفاده کنید
private void func_ShowSQLServerInstances()
{
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();
dataGridView1.DataSource = (table);
}
BACKUP DATABASE Database Name TO DISK = '" + strFileName + "'";
به همین سادگی و خوشمزگی
چند روز پیش سوال شده بود كه چگونه می توان دیتابیس MS SQL Server خود را بدون مشكلات احتمالی و به راحت ترين روش ممكن به سرور دیگری انتقال داد؟ برای درك بهتر سوال یك سناریو مطرح می كنم: شما WinCMS.Net Pro را داونلوئد كرده اید و بر روی localhost نصب می باشد؛ حال یا بصورت پیش فرض از دیتابیس فایلی SQL Server 2005 Express استفاده می كنید و یا با اجرای اسكریپت همراه فایل از سرور لوكال SQL Server 2005 بهره می برید. پس از آماده سازی سایت خود و ورود اطلاعات به آن در حالت لوكال، قصد آپلوئد آن به هاست خود در اینترنت و راه اندازی سایت خود را دارید بر روی هاست امكان استفاده از مد Express نمی باشد؛ حال چه كنیم؟
جواب: كاركنان مایكروسافت برنامه كوچك و بسیار مفیدی جهت انتشار دیتابیس به سرور های دیگر بصورت اسكریپت ارائه داده اند. این برنامه می تواند هم ساختار و هم اطلاعات درون پایگاه داده شما را یكجا اسكریپت كرده و با حل مشكل اجازه دسترسی اشیاء با نبست دادن تمام آن ها به كاربر سطح db_owner مشكل شما را حل كند. پس از داونلوئد Microsoft SQL Server Database Publishing Wizard 1.1 و نصب آن به دو حالت می توان دیتابیس خود را اسكریپت كرد:
1- از طریق اجرای این برنامه مشخصات سرور خود را داده و دیتابیس مورد نظر را اسكریپت كنید. بنابراین این برنامه به شما ایده جالبی می دهد: می توانید توسط آن از دیتابیس های خود در اینتر نت یا هر شبكه دیگری پشتیبان (backup) تهیه كنید!
2- نصب این برنامه گزینه ای به محیط Visual Studio اضافه می كند كه با باز كردن پروژه و راست كلیك بر روی نام دیتابیس در Server Explorer و انتخاب Publish To Provider، همان كار بالا را انجام دهید.
حال كافیست فایل ها را به هاست خود در اینترنت منتقل كرده و با ایجاد یك دیتابیس در سرور سایت (مثلاً از طریق كنترل پانل Plesk) و ایجاد كاربر SQL برای آن و تغییر مشخصات اتصال به سرور داده در بخش Connection String موجود در Web.Config، اسكریپت آماده خود را پس از اتصال به سرور در محیط اجرای query در SQL Server Management Studio مانند آنچه كه با Query Analyzer انجام می دادیم، run كنید!

Sypex Dumper یک نرم افزار تحت وب متن باز هست که کار پشتیبان گیری بلادرنگ یا خودکار از دیتابیس های MySQL رو انجام می ده، با زبان PHP نوشته شده و واسط کاربری اون هم از Ajax استفاده می کنه، همچنین قابلیت بازیابی اطلاعات دیتابیس رو هم داره.
این نرم افزار به دلیل این که محدودیت زمانی اجرای دستورات PHP رو bypass می کنه می تونه با دیتابیس های با حجم زیاد هم کار کنه.
Sypex Dumper قابلیت این رو هم داره که جداول یک دیتابیس روچک کنه و در صورت وجود اشکال تعمیر کنه. همچنین می تونه اون ها رو optimize کنه و برای این که شما فضای زیادی رو هنگام پشتیبان گیری از دست ندین این امکان رو هم داره که فایل های قدیمی پشتیبان روبه صورت خودکار حذف کنه.
در ضمن از فشرده سازی فایل ها و چند زبانه بودن هم پشتیبانی می کنه.
وب سایت مربوطه