日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺談如何在SQLServer2008中附加一個(gè)數(shù)據(jù)庫(kù)

向您推薦《SQL Server 2008深度應(yīng)用》,相信通過(guò)本專題,能讓您更深刻的了解SQL Server 2008。

成都創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元民豐做網(wǎng)站,已為上家服務(wù),為民豐各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

在SQL Server 7.0中,微軟推出了sp_attach_db和sp_attach_single_file_db系統(tǒng)存儲(chǔ)過(guò)程。它對(duì)于SQL Server數(shù)據(jù)庫(kù)管理員執(zhí)行下面的任務(wù)是非常方便的:

使用sp_attach_db系統(tǒng)存儲(chǔ)過(guò)程直接將.MDF和.LDF文件附加到服務(wù)器。

使用sp_attach_single_file_db系統(tǒng)存儲(chǔ)過(guò)程只附加.MDF文件。

使用sp_detach_db將數(shù)據(jù)庫(kù)從一個(gè)服務(wù)器分離,復(fù)制.MDF文件到另一個(gè)服務(wù)器上,然后使用sp_attach_db系統(tǒng)存儲(chǔ)過(guò)程重新附加這些文件到兩個(gè)服務(wù)器上。

盡管它對(duì)于SQL Server數(shù)據(jù)庫(kù)管理員是很有用的,但是在使用這兩個(gè)存儲(chǔ)過(guò)程時(shí)是有一些限制的。限制如下:

你不能附加多個(gè)日志文件

你不能附加16個(gè)以上的文件

在SQL Server 2008中,微軟宣布上面的系統(tǒng)存儲(chǔ)過(guò)程將在未來(lái)的版本中被廢棄。而他們?cè)凇癈reate Database”SQL語(yǔ)句中添加了一個(gè)從句“For Attach”。

這篇文章將介紹使用“For Attach”從句的多種方法,以克服在使用sp_attach_db和sp_attach_single_file_db時(shí)要面臨的限制。

假設(shè)我們有一個(gè)數(shù)據(jù)庫(kù)叫“MyDB1”,它有一個(gè).MDF文件和一個(gè).LDF文件。使用下面的事務(wù)SQL語(yǔ)句創(chuàng)建這個(gè)數(shù)據(jù)庫(kù)。再假設(shè).MDF文件和.LDF文件的位置是“C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database DataData File for Monthly ArchiveMicrosoft SQL Server 2008 Data File”。

 
 
 
  1. Use Master 
  2. go 
  3. CREATE DATABASE MyDB1 
  4. ON 
  5. ( NAME = MyDB1_dat, 
  6. FILENAME = 'C:Program Files 
  7. Microsoft SQL ServerMSSQL10.SQL2008MSSQLDATA 
  8. Summary Database DataData File for Monthly Archive 
  9. Microsoft SQL Server 2008 Data FileMyDB1.mdf', 
  10. SIZE = 10, 
  11. MAXSIZE = 50, 
  12. FILEGROWTH = 5 ) 
  13. LOG ON 
  14. ( NAME = MyDB1_log, 
  15. FILENAME = 'C:Program Files 
  16. Microsoft SQL ServerMSSQL10.SQL2008MSSQLDATA 
  17. Summary Database DataData File for Monthly Archive 
  18. Microsoft SQL Server 2008 Data FileMyDB1.ldf', 
  19. SIZE = 5MB, 
  20. MAXSIZE = 25MB, 
  21. FILEGROWTH = 5MB ) 
  22. GO 

現(xiàn)在,讓我們分離該數(shù)據(jù)庫(kù),并嘗試使用sp_detach_db和 sp_attach_db將它重新附加。執(zhí)行下面的事務(wù)SQL語(yǔ)句。

 
 
 
  1. use master 
  2. go 
  3. sp_detach_db 'MyDB1' 
  4. go 
  5. sp_attach_db 'MyDb1', 
  6. 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data 
  7. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.mdf', 
  8. 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data 
  9. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.ldf' 
  10. GO 
  11. 你可以使用具有“For Attach”從句的“Create database”命令附加上相同的數(shù)據(jù)庫(kù)文件,如下所示。 
  12. use master 
  13. go 
  14. sp_detach_db 'MyDB1' 
  15. go 
  16. CREATE DATABASE MyDB1 
  17. ON 
  18. FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data 
  19. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.mdf' 
  20. ), 
  21. FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data 
  22. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.ldf' 
  23. ) for Attach 
  24. go 

現(xiàn)在,讓我們分離數(shù)據(jù)庫(kù)MyDB1,然后刪除.ldf文件,再然后使用sp_attach_single_file_db系統(tǒng)存儲(chǔ)過(guò)程通過(guò)執(zhí)行下面的TSQL命令將它重新附加上。

 
 
 
  1. use master 
  2. go 
  3. sp_detach_db 'MyDB1' 
  4. go 
  5. exec master..xp_cmdshell 'del "C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data 
  6. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.ldf"' 
  7. go 

注意:我使用xp_cmdshell來(lái)刪除.ldf文件。如果xp_cmdshell沒(méi)有激活,那么你將得到下面的錯(cuò)誤。

錯(cuò)誤:

 
 
 
  1. Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1 
  2. SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' 
  3. because this component is turned off as part of the security configuration for 
  4. this server. A system administrator can enable the use of 'xp_cmdshell' by using 
  5. sp_configure. For more information about enabling 'xp_cmdshell', see 
  6. "Surface Area Configuration" in SQL Server Books Online. 

你可以使用下面的事務(wù)SQL語(yǔ)句來(lái)激活xp_cmdshell。 

 
 
 
  1. use master 
  2. go 
  3. sp_configure 'show advanced options',1 
  4. go 
  5. reconfigure with override 
  6. go 
  7. sp_configure 'xp_cmdshell',1 
  8. go 
  9. reconfigure with override 
  10. go 

或者,你可以在MS-DOS命令提示符中使用Windows資源管理器的“Del”命令來(lái)刪除.ldf文件。

現(xiàn)在,讓我們只使用sp_attach_single_file_db來(lái)附加.MDF文件。執(zhí)行下面所示的命令。

 
 
 
  1. use master 
  2. go 
  3. sp_attach_single_file_db 'MyDB1', 
  4. 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data 
  5. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.mdf' 
  6. go 

結(jié)果

 
 
 
  1.  File activation failure. The physical file name
  2. "C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data
  3. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.ldf" may be incorrect.
  4. New log file 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data
  5. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1_log.LDF' was created.

你可以只通過(guò)使用帶有“For ATTACH_REBUILD_LOG”從句的“Create database”命令來(lái)附加相同的數(shù)據(jù)庫(kù).MDF文件,如下所示。

 
 
 
  1. use master 
  2. go 
  3. sp_detach_db 'MyDB1' 
  4. go 
  5. exec master..xp_cmdshell 'del 
  6. "C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data 
  7. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1_log.ldf"' 
  8. go 

注意:當(dāng)日志文件被重新創(chuàng)建時(shí),SQL Server自動(dòng)對(duì)日志文件名稱添加后綴“_log”。

 
 
 
  1. CREATE DATABASE MyDB1 
  2. ON 
  3. FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data 
  4. Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.mdf' 
  5. ) for ATTACH_REBUILD_LOG 

結(jié)果:

 
 
 
  1. File activation failure. The physical file name "C:Program FilesMicrosoft SQL Server 
  2. MSSQL10.SQL2008MSSQLDATASummary Database DataData File for 
  3. Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1_log.LDF" may be incorrect. 
  4. New log file 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database 
  5. DataData File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1_log.LDF' was created. 

總結(jié)

本文介紹了帶有“For Attach”和“for ATTACH_REBUILD_LOG”用于一個(gè)單獨(dú)的.MDF文件和一個(gè)單獨(dú)的.LDF文件的“Create Database”語(yǔ)句的使用。


當(dāng)前文章:淺談如何在SQLServer2008中附加一個(gè)數(shù)據(jù)庫(kù)
網(wǎng)頁(yè)URL:http://www.5511xx.com/article/codedoo.html