您当前位置:优侠库 > 资讯攻略 >
来源:未知
2021-10-20 13:37:05 浏览: 分类:资讯攻略

浅谈如何在SQL Server 2008中附加一个数据库

在sql server 7.0中,微软引入了sp_attach_db和sp_attach_single_file_db系统存储过程。SQL Server数据库管理员可以非常方便地执行以下任务:

使用sp_attach_db系统存储过程直接连接。MDF和。LDF文件到服务器。

请使用sp_attach_single_file_db系统存储过程仅附加。MDF文件。

使用sp_detach_db从一台服务器上分离数据库,复制。MDF文件重新附加到另一台服务器上,然后使用sp_attach_db系统存储过程将这些文件重新附加到两台服务器上。

虽然它对SQL Server数据库管理员很有用,但在使用这两个存储过程时有一些限制。这些限制如下:

您不能附加多个日志文件。

您不能附加超过16个文件。

在SQL Server 2008中,微软宣布在未来版本中将放弃上述系统存储过程。他们在“创建数据库”中SQL语句中添加了一个子句“For Attach & quot。

本文将介绍如何使用“For Attach & quot子句来克服使用sp_attach_db和sp_attach_single_file_db时的限制。

假设我们有一个名为“MyDB1”的数据库,它有一个。MDF文件和一个。LDF档案。使用以下事务SQL语句创建此数据库。让我们假设。MDF文件和。LDF文件是“C:程序文件Microsoft SQL Server MSSQL 10 . SQL 2008 MSSQL datasummary Database Data每月归档的数据文件Microsoft SQL Server 2008数据文件& quot。

UseMaster go CREATEDATABASEMyDB1 ON (NAME=MyDB1_dat, FILENAME='C:ProgramFiles MicrosoftSQLServerMSSQL10.SQL2008MSSQLDATA SummaryDatabaseDataDataFileforMonthlyArchive MicrosoftSQLServer2008DataFileMyDB1.mdf', SIZE=10, MAXSIZE=50, FILEGROWTH=5) LOGON (NAME=MyDB1_log, FILENAME='C:ProgramFiles MicrosoftSQLServerMSSQL10.SQL2008MSSQLDATA SummaryDatabaseDataDataFileforMonthlyArchive MicrosoftSQLServer2008DataFileMyDB1.ldf', SIZE=5MB, MAXSIZE=25MB, FILEGROWTH=5MB) GO

现在,让我们分离数据库,并尝试使用sp_detach_db和sp_attach_db重新连接它。执行以下事务SQL语句。

usemaster go sp_detach_db'MyDB1' go sp_attach_db'MyDb1', 'C:ProgramFilesMicrosoftSQLServerMSSQL10.SQL2008MSSQLDATASummaryDatabaseData DataFileforMonthlyArchiveMicrosoftSQLServer2008DataFileMyDB1.mdf', 'C:ProgramFilesMicrosoftSQLServerMSSQL10.SQL2008MSSQLDATASummaryDatabaseData DataFileforMonthlyArchiveMicrosoftSQLServer2008DataFileMyDB1.ldf' GO 你可以使用具有"ForAttach"从句的"Createdatabase"命令附加上相同的数据库文件,如下所示。 usemaster go sp_detach_db'MyDB1' go CREATEDATABASEMyDB1 ON ( FILENAME='C:ProgramFilesMicrosoftSQLServerMSSQL10.SQL2008MSSQLDATASummaryDatabaseData DataFileforMonthlyArchiveMicrosoftSQLServer2008DataFileMyDB1.mdf' ), ( FILENAME='C:ProgramFilesMicrosoftSQLServerMSSQL10.SQL2008MSSQLDATASummaryDatabaseData DataFileforMonthlyArchiveMicrosoftSQLServer2008DataFileMyDB1.ldf' )forAttach go

现在,让我们分离数据库MyDB1,然后删除。ldf文件,然后通过执行以下TSQL命令,使用sp_attach_single_file_db系统存储过程重新附加该文件。

usemaster go sp_detach_db'MyDB1' go execmaster..xp_cmdshell'del"C:ProgramFilesMicrosoftSQLServerMSSQL10.SQL2008MSSQLDATASummaryDatabaseData DataFileforMonthlyArchiveMicrosoftSQLServer2008DataFileMyDB1.ldf"' go

注意:我使用xp_cmdshell来删除。ldf文件。如果xp_cmdshell没有被激活,那么您将得到下面的错误。

错误:

Msg15281,Level16,State1,Procedurexp_cmdshell,Line1 SQLServerblockedaccesstoprocedure'sys.xp_cmdshell'ofcomponent'xp_cmdshe

关键词:SQL Server 2008

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227188.html

攻略资讯
安卓软件
安卓游戏