نمایش نتایج 1 تا 2 از 2

نام تاپیک: نحوه attach کردن دیتابیس

  1. #1

    Exclamation نحوه attach کردن دیتابیس

    سلام دوستان من یک دیتابیس sql server 2000 دارم.
    که توسط یک Job در ساعت معینی یک بکاپ بر روی آن ریستور می شود. این job دچار خطا شده و اسم دیتابیس از لیست دیتابیس های sql -server حذف شده، ولی وقتی به مسیری که فایل های دیتابیس مراجعه کردم، دیدم که تمام فایل های mdf , ldf , log آن در مسیر مورد نظر وجود دارد و به صورت فایلی پاک نشده است.

    حالا میخوام این mdf فایل ها را که حدود 30 تا فایل هستش. attach کن پیغام ارور 5173 : Cannot associate files with different databases پیغام میده.
    ممنون میشم راهنمایی بفرماید چطور این دیتابیس attach کنم.

    با تشکر.

  2. #2
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    نقل قول: نحوه attach کردن دیتابیس

    سلام
    توابع اتچ ودیتچ

          private string Error { get; set; } = "No Error";



    public string Attach(string path, string databaseName)
    {
    path = path + @"\";
    try
    {
    if (Directory.Exists(path))
    {
    GetValue(path , databaseName);
    }
    else if (!Directory.Exists(path))
    {
    Error = "DirectoryNotFound";
    }
    }
    catch (DirectoryNotFoundException exception )
    {
    return Error = exception.Message;
    }

    return Error;
    }


    private void GetValue(string path, string databaseName)
    {
    databaseName = databaseName.Trim();
    _str = "USE [master]" + Environment.NewLine + "CREATE DATABASE[" + databaseName + "]" +
    Environment.NewLine +
    " ON" + Environment.NewLine + " (FILENAME = N'" +
    path + "\\" + databaseName + ".mdf" + "')," + Environment.NewLine + "(FILENAME = N'" + path +
    "\\" +
    databaseName + "_log.ldf' )" + Environment.NewLine + "FOR ATTACH";


    _cnn = new SqlConnection(@"Server=.;Integrated security=SSPI;database=master");
    _cmd = new SqlCommand(_str, _cnn);
    try
    {
    _cnn.Open();
    _cmd.ExecuteNonQuery();
    }
    catch (SqlException ex)
    {
    Error = ex.Message;
    }
    finally
    {
    if (_cnn.State == ConnectionState.Open)
    {
    _cnn.Close();
    }
    }
    }


    public string Detach(string databaseName)
    {
    databaseName = databaseName.Trim();
    _str = "USE [master]" + Environment.NewLine + "EXEC master.dbo.sp_detach_db @dbname = N'" + databaseName +
    "'";
    _cnn = new SqlConnection(@"Server=.;Integrated security=SSPI;database=master");
    _cmd = new SqlCommand(_str, _cnn);


    try
    {
    _cnn.Open();
    _cmd.ExecuteNonQuery();
    }
    catch (SqlException ex)
    {
    Error = ex.Message;
    }
    finally
    {
    if (_cnn.State == ConnectionState.Open)
    {
    _cnn.Close();
    }
    }
    return Error;
    }


    مثال
    کاستومر دیتابیس است


    Attach("D:\\","customer")
    Detach("customer")

تاپیک های مشابه

  1. نحوه attach کردن دیتابیس به sql server 2005 در #C
    نوشته شده توسط mohsen.ahmadi در بخش مسائل مرتبط با نصب و راه اندازی
    پاسخ: 2
    آخرین پست: یک شنبه 22 بهمن 1391, 16:11 عصر
  2. پاسخ: 3
    آخرین پست: چهارشنبه 28 بهمن 1388, 10:13 صبح
  3. سوال: نحوه attach كردن ديتابيس
    نوشته شده توسط HjSoft در بخش SQL Server
    پاسخ: 3
    آخرین پست: دوشنبه 02 آذر 1388, 00:39 صبح
  4. attach کردن دیتابیس SQL در دلیفی
    نوشته شده توسط ali512 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: شنبه 19 آذر 1384, 12:31 عصر
  5. attach کردن دیتابیس هنگام نصب برنامه
    نوشته شده توسط marzieh_k در بخش VB.NET
    پاسخ: 0
    آخرین پست: چهارشنبه 04 آبان 1384, 11:35 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •