Refè yon kòwonpi SQL Server MDF baz done

Lè ou SQL Server Baz done MDF fin pouri, ou ka itilize metòd sa yo pou refè done ki ladan l, pou redwi pèt la:

Remak: Anvan ou fè nenpòt operasyon rekiperasyon done, tanpri fè backup fichye baz done MDF ak NDF koripsyon ou yo an premye.

  1. Premye a tout, ou ka eseye SQL Server kòmandman entegre DBCC CHECKDB pou rekipere baz done w la. Sipoze fichye baz done koripsyon an se 'MyDatabase.mdf', Lè sa a, ou ka fè jan sa a pou refè done ki andedan li:
    1. Restart SQL Server.
    2. Pa fè okenn operasyon.
    3. In SQL Server Management Studio, egzekite deklarasyon SQL sa yo:
      itilize master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Mete baz done destinasyon an nan mòd yon sèl itilizatè dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Mete baz done destinasyon an tounen nan mòd plizyè itilizatè
      

      Deklarasyon an

      dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
      

      ka lakòz pèt kèk done nan baz done ou lè w ap fè operasyon reparasyon an.

      Pandan ke deklarasyon an

      dbcc checkdb(@databasename,REPAIR_REBUILD)
      

      PAP lakòz okenn pèt done pandan operasyon reparasyon an, men li pran plis tan.

      Se konsa, si ou pa sou ijan, ou ka premye eseye fè dezyèm deklarasyon an dbcc checkdb sèlman, si deklarasyon sa a pa ka ede refè baz done a, Lè sa a, ou ka fè premye ak dezyèm dbcc checkdb kòmandman yo.

      Apre operasyon reparasyon an, ou ka rele

      dbcc checkdb('MyDatabase.mdf')
      

      ankò pou wè si baz done a fiks oswa ou pa.

      Ou ka jwenn plis enfòmasyon detaye sou lòd dbcc checkdb nan https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Si apre w fin itilize metòd 1, dbcc checkdb toujou rapòte erè nan kèk tab, ou ka eseye SQL Server kòmandman entegre DBCC CHECKTABLE pou rekipere tab sa yo nan baz done w la. Sipoze fichye baz done koripsyon an se 'MyDatabase.mdf' ak tab ou vle repare se 'MyTable', Lè sa a, ou ka fè jan sa a pou repare li:
    1. Restart SQL Server.
    2. Pa fè okenn operasyon.
    3. In SQL Server Management Studio, egzekite deklarasyon SQL sa yo:
      sèvi ak MyDatabase.mdf deklare @dbname varchar(255) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) dbAIR_TableTable','DPMREIL ) exec sp_dboption @dbname,'single user','false'
      

      Deklarasyon an

      dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS)
      

      ka lakòz pèt nan kèk done nan tab ou a lè fè operasyon an reparasyon.

      Pandan ke deklarasyon an

      dbcc checktable('MyTable',REPAIR_REBUILD)
      

      PAP lakòz okenn pèt done pandan operasyon reparasyon an, men li pran plis tan.

      Se konsa, si ou pa sou ijan, ou ka premye eseye fè dezyèm deklarasyon dbcc checktable sèlman, si deklarasyon sa a pa ka ede refè baz done a, Lè sa a, ou ka fè premye ak dezyèm kòmandman dbcc checktable.

      Apre ou fin ranpli operasyon an reparasyon pou tout tab koripsyon yo, ou ka rele

      dbcc checkdb('MyDatabase.mdf')
      

      ankò pou wè si tab yo nan baz done yo fiks oswa ou pa.

    Ou ka jwenn plis enfòmasyon detaye sou lòd dbcc checktable nan https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Si metòd 1 ak 2 toujou pa ka ranje baz done kòwonpi a oswa tab yo, oswa si metòd sa yo pa ka refè done ou vle a, Lè sa a, ou ka itilize DataNumen SQL Recovery refè done ki soti nan baz done MDF ou a.