怎样sql还原数据库SQL Server 2000数据库

已有天涯账号?
这里是所提的问题,您需要登录才能参与回答。
"天涯问答"是天涯社区旗下的问题分享平台。在这里您可以提问,回答感兴趣的问题,分享知识和经历,无论您在何时何地上线都可以访问,此平台完全免费,而且注册非常简单。
请问sql2000数据库的备份及恢复如何操作该考虑哪些因素
请问sql2000数据库的备份及恢复如何操作该考虑哪些因素
09-03-09 &匿名提问 发布
SQL SERVER 2005 备份与恢复简介本章包括:备份与恢复的介绍备份的类型恢复的模式如何备份数据库如何还原数据库备份设备的管理自动备份一个数据库管理员,为了保证数据库里的数据万无一失,必须要定期对数据库进行备份,一旦数据库出现了问题,可以从备份的文件里最大程度地还原数据。18.1 备份与恢复简介相信大多数人都会同意数据库里的数据要比数据库本身要重要得多,但是因为种种原因,如磁盘故障、计算机硬件故障、用户操作失误等,都有可能会损坏数据。为了保证在发生这些意外的时候可以最大限度地挽救数据,数据库管理员必须要经常备份数据库里的数据。SQL Server 2005提供了强大的备份和还原的功能。
请登录后再发表评论!用sql2000备份的数据库用sql2005怎么还原?
用sql2000备份的数据库用sql2005怎么还原? 5
补充:可是我试了。不好使呀。提示错误:
------------------------------
还原 对于 服务器“WDZ”失败。
(Microsoft.SqlServer.Smo)
有关帮助信息,请单击: /fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=还原+Server&LinkId=20476
------------------------------
System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'MMS' 数据库不同。 (Microsoft.SqlServer.Smo)
有关帮助信息,请单击: /fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&LinkId=20476
------------------------------
------------------------------
新建一个与原来数据库相同名称的数据库
然后在还原
注意在左过,有个叫选则什么的东东,
点下它.右过会出现有几个可以打钩的.
把覆盖现有数据库的钩给钩上
的感言:太感谢 你啦。一语道破呀。
其他回答 (2)
直接还原就行了,和在sqlserver2000下的还一样的
sqlserver2000可以直接在sqlserver2005上用,但是在sqlserver2005上用了就不能在sqlserver2000上用了,除非是数据库脚本
等待您来回答
编程领域专家asp+sql server2000还原数据库备份时,如何取得排他访问权
[问题点数:100分,结帖人asuka37]
asp+sql server2000还原数据库备份时,如何取得排他访问权
[问题点数:100分,结帖人asuka37]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2005年 总版技术专家分年内排行榜第一2004年 总版技术专家分年内排行榜第一
2006年 总版技术专家分年内排行榜第六2003年 总版技术专家分年内排行榜第八
2005年 总版技术专家分年内排行榜第一2004年 总版技术专家分年内排行榜第一
2006年 总版技术专家分年内排行榜第六2003年 总版技术专家分年内排行榜第八
2005年 总版技术专家分年内排行榜第一2004年 总版技术专家分年内排行榜第一
2006年 总版技术专家分年内排行榜第六2003年 总版技术专家分年内排行榜第八
2005年 总版技术专家分年内排行榜第一2004年 总版技术专家分年内排行榜第一
2006年 总版技术专家分年内排行榜第六2003年 总版技术专家分年内排行榜第八
本帖子已过去太久远了,不再提供回复功能。33247人阅读
由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接【分离/附加】或者【备份/还原】数据库,在不同版本之间存放。往往就会遇到版本不兼容的问题。前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错:从运行版本10.50.R2是10.50)和10.00.是10.00)中可以看出这个版本不兼容问题,大部分情况下,从低版本升级到高版本,只要不是跨度太大,如2000升级到2012,都不会怎么报错。除非使用了一些新版本不兼容的特性如*=来实现left join的语句。但是就像上图那样,从高版本还原到低版本的时候,问题就出现了,而且几乎一定会报错。下面给出几个小建议,例子是从2008 降级到2005:方法一:使用图形化操作(GUI),打开SSMS(SQL Server Management Studio)步骤1:右键你要降级的数据库,按下图选择:步骤2:在对话框中选择:&& 步骤3:在【高级】中选择下图:步骤4:把脚本保存起来,然后在SQLServer2005中运行脚本。详细步骤可以看:&中的13楼的回复,有截图步骤5:通过【任务】→【导入数据】,把数据从2008导入到使用脚本创建的库上如下图,就完成了:方法二:使用系统自带的存储过程实现:sp_dbcmptlevel&——将某些数据库行为设置为与指定的 SQL Server 版本兼容下面是其内部实现代码:SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
create procedure sys.sp_dbcmptlevel
@dbname sysname = NULL,
-- database name to change
@new_cmptlevel tinyint = NULL OUTPUT -- the new compatibility level to change to
set nocount
declare @exec_stmt nvarchar(max)
declare @returncode int
declare @comptlevel float(8)
declare @dbid int
-- dbid of the database
declare @dbsid varbinary(85)
-- id of the owner of the database
declare @orig_cmptlevel tinyint
-- original compatibility level
declare @input_cmptlevel tinyint -- compatibility level passed in by user
,@cmptlvl80 tinyint
-- compatibility to SQL Server Version 8.0
,@cmptlvl90 tinyint
-- compatibility to SQL Server Version 9.0
,@cmptlvl100 tinyint
-- compatibility to SQL Server Version 10.0
@cmptlvl80 = 80,
@cmptlvl90 = 90,
@cmptlvl100 = 100
-- SP MUST BE CALLED AT ADHOC LEVEL --
if (@@nestlevel & 1)
raiserror(1,'sys.sp_dbcmptlevel')
return (1)
-- If no @dbname given, just list the valid compatibility level values.
if @dbname is null
raiserror (15048, -1, -1, @cmptlvl80, @cmptlvl90, @cmptlvl100)
return (0)
Verify the database name and get info
select @dbid = dbid, @dbsid = sid ,@orig_cmptlevel = cmptlevel
from master.dbo.sysdatabases
where name = @dbname
If @dbname not found, say so and list the databases.
if @dbid is null
raiserror(1,@dbname)
select name as 'Available databases:'
from master.dbo.sysdatabases
return (1)
-- Now save the input compatibility level and initialize the return clevel
-- to be the current clevel
select @input_cmptlevel = @new_cmptlevel
select @new_cmptlevel = @orig_cmptlevel
-- If no clevel was supplied, display and output current level.
if @input_cmptlevel is null
raiserror(15054, -1, -1, @orig_cmptlevel)
-- If invalid clevel given, print usage and return error code
-- 'usage: sp_dbcmptlevel [dbname [, compatibilitylevel]]'
if @input_cmptlevel not in (@cmptlvl80, @cmptlvl90, @cmptlvl100)
raiserror(15416, -1, -1)
raiserror (15048, -1, -1, @cmptlvl80, @cmptlvl90, @cmptlvl100)
return (1)
Only the SA or the dbo of @dbname can execute the update part
of this procedure sys.so check.
if (not (is_srvrolemember('sysadmin') = 1)) and suser_sid() && @dbsid
-- ALSO ALLOW db_owner ONLY IF DB REQUESTED IS CURRENT DB
and (@dbid && db_id() or is_member('db_owner') && 1)
raiserror(1)
return (1)
-- If we're in a transaction, disallow this since it might make recovery impossible.
set implicit_transactions off
if @@trancount & 0
raiserror(1,'sys.sp_dbcmptlevel')
return (1)
set @exec_stmt = 'ALTER DATABASE ' + quotename(@dbname, '[') + ' SET COMPATIBILITY_LEVEL = ' + cast(@input_cmptlevel as nvarchar(128))
-- Note: database @dbname may not exist anymore
exec(@exec_stmt)
select @new_cmptlevel = @input_cmptlevel
return (0) -- sp_dbcmptlevel
sp_dbcmptlevel [ [ @dbname = ] name ]
[ , [ @new_cmptlevel = ] version ]
参数[ @dbname = ] name要为其更改兼容级别的数据库的名称。数据库名称必须符合标识符的规则。name 的数据类型为 sysname,默认值为 NULL。[ @new_cmptlevel = ] version数据库要与之兼容的 SQL Server 的版本。version 的数据类型为 tinyint,默认值为 NULL。该值必须为下列值之一:80 = SQL Server 2000 90 = SQL Server 2005 100 = SQL Server 2008 0(成功)或 1(失败)注意事项:后续版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。 改为使用 ALTER DATABASE 兼容级别。关于备份,可以看我的另外一篇文章:
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:485911次
积分:7272
积分:7272
排名:第912名
原创:86篇
转载:37篇
译文:95篇
评论:357条
文章:30篇
阅读:14445
文章:82篇
阅读:260608
(1)(1)(10)(10)(10)(4)(6)(4)(2)(1)(4)(10)(12)(16)(4)(6)(9)(1)(5)(5)(13)(9)(32)(42)(1)

我要回帖

更多关于 sql server数据库 的文章

 

随机推荐