c# - لم يتم عمل نسخة احتياطية من سجل قاعدة البيانات "DBName"




sql sql-server-2005 sharepoint (5)

بالنسبة لأولئك الذين يستخدمون Management Studio يجب أن يعمل هذا:

حاولت استعادة قاعدة بيانات باستخدام الاستعلام التالي:

ALTER DATABASE [DatabaseName] SET Single_User WITH Rollback Immediate GO
RESTORE DATABASE DatabaseName FROM DISK = 'C:\DBName-Full Database Backup'
ALTER DATABASE [DatabaseName] SET Multi_User GO

ولكن بدلاً من استعادة قاعدة البيانات ، أتلقى هذا الخطأ:

Msg 3159، Level 16، State 1، Line 2

لم يتم عمل نسخة احتياطية من سجل قاعدة البيانات "DatabaseName". استخدم BACKUP LOG WITH NORECOVERY لعمل نسخة احتياطية من السجل إذا كان يحتوي على عمل لا تريد فقده. استخدم جملة WITH REPLACE أو WITH STOPAT من عبارة RESTORE للكتابة فوق محتويات السجل. يتم إنهاء Msg 3013، مستوى 16، حالة 1، السطر 2 RESTORE DATABASE بشكل غير طبيعي.


بدلاً من ذلك ، يمكنك تغيير نموذج استرداد قاعدة البيانات إلى "بسيط" بدلاً من "كامل".

انقر بزر الماوس الأيمن على قاعدة البيانات ، اختر "خصائص" ، "خيار" ، قم بتغيير "نموذج الاسترداد" إلى "بسيط".

ثم ما كتبته يجب أن يعمل دون إنتاج أخطاء.


استخدم BACKUP LOG مع NORECOVERY لعمل نسخة احتياطية من السجل إذا كان يحتوي على عمل لا تريد فقده.

استخدم جملة WITH REPLACE أو WITH STOPAT من عبارة RESTORE للكتابة فوق محتويات السجل.

حقا ، هذا هو الجواب. هناك ، في الرسالة. ماذا تريد أن تفعل؟ النسخ الاحتياطي الذيل حتى لا تضيع؟ هل تريد استبدال السجل الذي لم يتم نسخه احتياطيًا؟ اتصالك.


تخبرك رسالة الخطأ التي تحصل عليها بالضبط بما يجب عليك القيام به إذا كنت لا تهتم بقاعدة البيانات الموجودة أو السجل.

RESTORE DATABASE DAtabaseName FROM DISK = 'C:\DBName-Full Database Backup' 
WITH REPLACE

في SQL Server Management Studio (المهام> الاستعادة) ، يمكنك إضافة خيار WITH REPLACE عن طريق فتح الصفحة "Options" على الجانب الأيسر وتحديد "الكتابة فوق قاعدة البيانات الموجودة".


في الغالب نفس الكود كما في اقتراح Javed Akram الثاني ، ولكن يتم إضافة عرض شريط التمرير العمودي:

int setWidth_comboBox(ComboBox cb)
{
  int maxWidth = 0, temp = 0;
  foreach (string s in cb.Items)
  {
    temp = TextRenderer.MeasureText(s, cb.Font).Width;
    if (temp > maxWidth)
    {
      maxWidth = temp;
    }
  }
  return maxWidth + SystemInformation.VerticalScrollBarWidth;
}

استخدم الرمز مثل هذا (في نموذج مع combobox باسم myComboBox):

myComboBox.Width = setWidth_comboBox(myComboBox);




c# sql sql-server-2005 sharepoint