Recupera un Corruttu SQL Server basa di dati MDF

quandu ti SQL Server A basa di dati MDF hè corrotta, pudete aduprà i seguenti metudi per ricuperà i dati in questu, per riduce a perdita:

Nota: Prima di fà qualsiasi operazioni di ricuperazione di dati, fate prima una copia di salvezza di i vostri fugliali di basa di dati MDF è NDF currutti.

  1. Prima di tuttu, pudete pruvà SQL Server cumanda integrata DBCC CHECKDB per ricuperà a vostra basa di dati. Assumindu chì u schedariu di basa di dati corruptu hè 'MyDatabase.mdf', allora pudete fà a siguenti per ricuperà i dati in questu:
    1. Restart SQL Server.
    2. Ùn fate micca operazioni.
    3. In SQL Server Management Studio, eseguite e seguenti dichjarazioni SQL:
      use master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Pone a basa di dati di destinazione in modu unicu dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Pone a basa di dati di destinazione torna in modu multi-utilizatori
      

      A dichjarazione

      dbcc checkdb (@databasename,REPAIR_ALLOW_DATA_LOSS)
      

      pò causà a perdita di qualchi dati in a vostra basa di dati quandu eseguite l'operazione di riparazione.

      Mentre a dichjarazione

      dbcc checkdb (@databasename,REPAIR_REBUILD)
      

      Ùn pruvucarà ogni perdita di dati durante u funziunamentu di riparazione, ma hè più tempu.

      Allora s'ellu ùn site micca urgente, pudete prima pruvà à fà a seconda dichjarazione dbcc checkdb solu, se quella dichjarazione ùn pò aiutà à ricuperà a basa di dati, pudete eseguisce u primu è u sicondu cumandamentu dbcc checkdb.

      Dopu l'operazione di riparazione, pudete chjamà

      dbcc checkdb('MyDatabase.mdf')
      

      novu per vede se a basa di dati hè fissata o micca.

      L'infurmazione più dettagliata nantu à u cumandamentu dbcc checkdb pò esse truvata à https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Se dopu avè utilizatu u metudu 1, dbcc checkdb riporta ancu errori in certi tavule, pudete pruvà SQL Server cumanda integrata DBCC CHECKTABLE per ricuperà queste tabelle in a vostra basa di dati. Assumindu chì u schedariu di basa di dati corruptu hè 'MyDatabase.mdf' è a tavola chì vulete riparà hè 'MyTable', allora pudete fà cumu per riparà:
    1. Restart SQL Server.
    2. Ùn fate micca operazioni.
    3. In SQL Server Management Studio, eseguite e seguenti dichjarazioni SQL:
      use MyDatabase.mdf dichjarà @dbname varchar(255) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) dbAIR_TableTable'BUILREILPy_Ty_Table ) exec sp_dboption @dbname,'single user','false'
      

      A dichjarazione

      dbcc checktable('MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      pò causari a perdita di qualchi dati in u vostru tavulinu quandu eseguite l'operazione di riparazione.

      Mentre a dichjarazione

      dbcc checktable('MyTable', REPAIR_REBUILD)
      

      Ùn pruvucarà ogni perdita di dati durante u funziunamentu di riparazione, ma hè più tempu.

      Allora s'ellu ùn site micca urgente, pudete prima pruvà à fà a seconda dichjarazione di dbcc checktable solu, se quella dichjarazione ùn pò aiutà à ricuperà a basa di dati, pudete eseguisce u primu è u sicondu cumandamentu dbcc checktable.

      Dopu avè finitu l'operazione di riparazione per tutte e tavule currutti, pudete chjamà

      dbcc checkdb('MyDatabase.mdf')
      

      novu per vede s'ellu i tavule in a basa di dati sò fissi o micca.

    L'infurmazione più dettagliata nantu à u cumandamentu di dbcc checktable pò esse truvata à https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Se u metudu 1 è 2 ùn ponu micca riparà a basa di dati corrupta o e tavule, o se questi metudi ùn ponu micca ricuperà i dati chì vulete, pudete aduprà DataNumen SQL Recovery per ricuperà i dati da a vostra basa di dati MDF.