PDA

View Full Version : سوال: deattach کردن بانک از sql?



sajadjamalian
یک شنبه 05 دی 1389, 09:22 صبح
سلام دوستان:
با چه کدی میتونم بانک رو deattach کنم؟ممنون.

Reza_Yarahmadi
یک شنبه 05 دی 1389, 09:56 صبح
به وسيله دستورات SQL بصورت زير

EXEC sp_detach_db @dbname
به وسيله دستورات #C بصورت زير

using Microsoft.SqlServer.Management.Smo;

Server srv = new Server("ServerName");
srv.DetachDatabase("DbName", true);

sajadjamalian
دوشنبه 06 دی 1389, 11:49 صبح
سلام دوست عزیز:
ممنون از توجهت، من وقتی از کد بالا استفاده می کنم error میده که Cannot detach the database 'test1' because it is currently in use.
میشه بگید باید چیکار کنم؟

hossin.esm
دوشنبه 06 دی 1389, 13:45 عصر
این کد را قبل از detach کردن بگذار.

SqlClient.SqlConnection.ClearAllPools();

sajadjamalian
دوشنبه 06 دی 1389, 14:39 عصر
سلام دوست عزیز:
ممنون از توجهت:
من از using زیر استفاده کردم، ولی توی کد شما sqlclient رو نمیشناسه، باید چیکار کنم؟

using System.Data.SqlClient;

hossin.esm
دوشنبه 06 دی 1389, 20:21 عصر
SqlConnection.ClearAllPools();

sajadjamalian
سه شنبه 07 دی 1389, 10:36 صبح
سلام دوستان:
بازم نشد، همون ایراد قبلی رو میگیره، کمممممممممممممممممممممک!!!! :گریه::گریه:

hossin.esm
سه شنبه 07 دی 1389, 11:43 صبح
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\file.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;//'
cmd.Connection.Close();
SqlConnection.ClearAllPools();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename='';Integrate d Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_detach_db";
cmd.Parameters.AddWithValue("@dbname", SqlDbType.NVarChar).Value = dbname;
cmd.Parameters.AddWithValue("@skipchecks", SqlDbType.NVarChar).Value = "true";
cmd.Parameters.AddWithValue("@keepfulltextindexfile", SqlDbType.VarChar).Value = "true";
cmd.ExecuteNonQuery();
cmd.Connection.Close();
MessageBox.Show("detach database: ok");

sajadjamalian
سه شنبه 07 دی 1389, 14:43 عصر
SqlConnection.ClearAllPools();

سلام دوست عزیز:
ممنون از توجهت، میشه توضیح بدید که کد بالا چه کاری رو انجام میده؟