Phinda Ukhohlakale SQL Server Idatha ye-MDF

Uma u SQL Server Idatha ye-MDF yonakele, ungasebenzisa izindlela ezilandelayo ukuthola imininingwane ekuyo, ukunciphisa ukulahleka:

Qaphela: Ngaphambi kokwenza noma yimiphi imisebenzi yokuthola idatha, sicela ulondoloze amafayela wakho wedatha e-MDF ne-NDF akhohlakele kuqala.

  1. Okokuqala, ungazama SQL Server umyalo owakhelwe ngaphakathi I-DBCC CHECKDB ukuthola i-database yakho. Uma ucabanga ukuthi ifayili ledatha elonakele yi-'MyDatabase.mdf ', bese ungenza ngokulandelayo ukuthola imininingwane engaphakathi kuyo:
    1. Restart SQL Server.
    2. Ungenzi noma iyiphi imisebenzi.
    3. In SQL Server Management Studio, yenza izitatimende ezilandelayo ze-SQL:
      sebenzisa master memezela @databasename varchar (255) set @ databasename = 'MyDatabase.mdf' exec sp_dboption @databasename, N'single ', N'true' - Setha indawo okugcinwa kuyo imodi yomsebenzisi oyedwa dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS ) i-dbcc checkdb (@ databasename, REPAIR_REBUILD) yenza i-sp_dboption @databasename, i-N'single ', i-N'false' - Setha i-database okuyiwa kuyo ibuyele kumodi yabasebenzisi abaningi
      

      Isitatimende

      dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS)
      

      kungadala ukulahleka kweminye imininingwane ku-database yakho lapho wenza umsebenzi wokulungisa.

      Ngenkathi isitatimende

      dbcc checkdb (@ databasename, REPAIR_REBUILD)
      

      NGEKE ibangele ukulahleka kwedatha ngesikhathi sokulungiswa, kepha kudla isikhathi esiningi.

      Ngakho-ke uma ungekho esiphuthumayo, ungaqala uzame ukwenza isitatimende sesibili se-dbcc checkdb kuphela, uma leso sitatimende singeke sisize ukubuyisa i-database, lapho-ke ungenza imiyalo yokuqala neyesibili ye-dbcc checkdb.

      Ngemuva komsebenzi wokulungisa, ungashayela

      i-dbcc checkdb ('MyDatabase.mdf')
      

      futhi ukubona ukuthi i-database ihleliwe noma cha.

      Imininingwane engaphezulu mayelana nomyalo we-dbcc checkdb ingatholakala ku- https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Uma ngemuva kokusebenzisa indlela 1, i-dbcc checkdb isabika amaphutha kwamanye amatafula, ungazama SQL Server umyalo owakhelwe ngaphakathi i-DBCC CHECKTABLE ukuthola kabusha lawa amatafula ku-database yakho. Uma ucabanga ukuthi ifayili ledatha elonakele yi-'MyDatabase.mdf 'netafula ofuna ukulilungisa yi-'MyTable', lapho-ke ungenza okulandelayo ukulilungisa:
    1. Restart SQL Server.
    2. Ungenzi noma iyiphi imisebenzi.
    3. In SQL Server Management Studio, yenza izitatimende ezilandelayo ze-SQL:
      sebenzisa i-MyDatabase.mdf Memezela @dbname varchar (255) set @ dbname = 'MyDatabase.mdf' exec sp_dboption @ dbname, 'single user', 'true' dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc checktable ('MyTable', REPAIR_REBU ) yenza i-sp_dboption @ dbname, 'umsebenzisi oyedwa', 'amanga'
      

      Isitatimende

      i-dbcc ebhekwayo ('MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      kungadala ukulahleka kweminye imininingwane kutafula lakho lapho wenza umsebenzi wokulungisa.

      Ngenkathi isitatimende

      i-dbcc ebhekwayo ('MyTable', REPAIR_REBUILD)
      

      NGEKE ibangele ukulahleka kwedatha ngesikhathi sokulungiswa, kepha kudla isikhathi esiningi.

      Ngakho-ke uma ungekho esiphuthumayo, ungaqala uzame ukwenza isitatimende sesibili sokubheka i-dbcc kuphela, uma leso sitatimende singenakusiza ukuthola i-database, lapho-ke ungenza imiyalo yokuqala neyesibili ye-dbcc checktable.

      Ngemuva kokuphothula umsebenzi wokulungisa wawo wonke amatafula akhohlakele, ungashayela

      i-dbcc checkdb ('MyDatabase.mdf')
      

      futhi ukubona ukuthi amatafula aku-database alungisiwe noma cha.

    Imininingwane engaphezulu enemininingwane mayelana nomyalo wokuhlola we-dbcc ingatholakala ku- https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Uma indlela 1 no-2 zingakwazi ukulungisa i-database eyonakele noma amatafula, noma uma lezi zindlela zingakwazi ukubuyisa idatha oyifunayo, ungasebenzisa DataNumen SQL Recovery ukuthola imininingwane kusuka ku-database yakho ye-MDF.