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.
- 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:
- Restart SQL Server.
- Ungenzi noma iyiphi imisebenzi.
- 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
- 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:
- Restart SQL Server.
- Ungenzi noma iyiphi imisebenzi.
- 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
- 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.