PDA

View Full Version : سوال: چگونگی اجرای دستورات SQL



aryan2005
پنج شنبه 08 مهر 1389, 11:56 صبح
با سلام
در برنامه ام می خواهم از دستوراتی نظیر Backup database یا sp-dettach-db استفاده کنم اما هنگام ExecuteNonQuery با پیغامی مواجه می شوم که می گوید بانکی با این اسم وجود ندارد و نمی دانم باید چکار کنم

CatalogCommand = new SqlCommand();
CatalogCommand.Connection = CatalogConnection;
CatalogCommand.CommandText="exec sp_dettach-db mydb"
CatalogConnection.Open();
CatalogCommand.ExecuteNonQuery();
CatalogConnection.Close();

mehdi.mousavi
جمعه 09 مهر 1389, 00:46 صبح
سلام.
قبل از اینکه بتونید بانکی رو detach کنید، باید exclusive access به اون بانک داشته باشید و الا چون ممکنه بانک در حال استفاده باشه، detach کردنش غیر ممکنه. برای این منظور ابتدا دستورات زیر رو باید اجرا کنید:

USE master;
ALTER DATABASE MyDb
SET SINGLE_USER;
GO

بدین ترتیب، بانک منحصرا در کنترل شما قرار خواهد گرفت. در نهایت، sp_detach_db (http://msdn.microsoft.com/en-us/library/ms188031.aspx) روی بانک master تعریف شده، در نتیجه، باید اون بانک رو برای اجرای این Stored Procedure آدرس کنید. این کارو کنید، مشکلتون رفع میشه (به بیان دیگه، خط قبل از فراخوانی sp_detach_db، از use master استفاده کنید).

موفق باشید.