求mssql2000转换成mssql2005的最佳方法

求mssql2000转换成mssql2005的最佳方法(mssql2005打了补丁2)
附加数据库,试过了,太麻烦,要重建用户的登陆名.
特别是密码有些不清楚.
有好的方法,再追分.
我只是对单个数据库转移,用分离再附加的方法,但我附加到2005后,数据库的用户都没有登陆名了.所以麻烦

太多抄袭了,还是关了.
我试过生成脚本,但在2005上执行不下去,提示了一大堆错误.

一般的数据迁移是没有什么问题,但是要注意你的存储过程或函数中如果应用到了系统表或系统视图,要注意修改成对应在SQL2005下的schema名称(sys)!

还有xp_cmdshell在SQL2005中已经作为高级选项了,不能够直接使用。
要是原来的程序中用到了,在2005中使用xp_cmdshell前请先打开高级选想开关:
回答者:yzh4492767 - 助理 二级 5-24 09:31

其实就是附加数据库

由于有多个库,所以单个附加比较麻烦.

使用存储过程.sp_attach_db 说明如下.
Transact-SQL 参考
sp_attach_db
将数据库附加到服务器。

语法
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]

参数
[@dbname =] 'dbname'

要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。

[@filename1 =] 'filename_n'

数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。

返回代码值
0(成功)或 1(失败)

结果集


注释
只应对以前使用显式 sp_detach_db 操作从数据库服务器分离的数据库执行 sp_attach_db。如果必须指定多于 16 个文件,请使用带有 FOR ATTACH 子句的 Create DATABASE。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。

权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程。

示例
下面的示例将 pubs 中的两个文件附加到当前服务器。

EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

请参见

Create DATABASE

sp_attach_single_file_db

sp_detach_db

sp_helpfile

sp_removedbreplication

系统存储过程

步骤:
1.在要升级的SQL2000 Master库中执行如下语句

--EXEC sp_attach_db @dbname = N'pubs',
-- @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
-- @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

--下面的语句是按上面的来做的

select 'exec sp_attach_db @dbname=N'''+name+''', @filename1=N'''+filename+''',@filename2=N'''+filename+''''
from sysdatabases

2.将查询出来的内容全部复制,删除不需要附加的表及系统表.

3.修改或替换文件名和路径

5.将改后的数据库脚本在SQL2005的master表里执行一下. 附加就完了.

6.删除SQL2005中新表的数据库登录名.添加新的登录名.

附:
2005转到2000的步骤
1. 生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库
-- 勾选"为所选数据库中的所有对象编写脚本"
-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件

2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库

3. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成
回答者:wkghnn - 助理 二级 5-24 09:39

2005转到2000的步骤
1. 生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库
-- 勾选"为所选数据库中的所有对象编写脚本"
-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件

2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库

3. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成

如果出现错误,那么看看错误所对应的语句是否正确,或者把脚本分几段执行调试...

希望我的回答对你有帮助~~~~~~!!!~~~~~~
回答者:kinglin123 - 魔法师 四级 5-24 09:39

. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-05-24
2005转到2000的步骤
1. 生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库
-- 勾选"为所选数据库中的所有对象编写脚本"
-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件

2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库

3. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成

如果出现错误,那么看看错误所对应的语句是否正确,或者把脚本分几段执行调试...

希望我的回答对你有帮助~~~~~~!!!~~~~~~
第2个回答  2007-05-24
其实就是附加数据库

由于有多个库,所以单个附加比较麻烦.

使用存储过程.sp_attach_db 说明如下.
Transact-SQL 参考
sp_attach_db
将数据库附加到服务器。

语法
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]

参数
[@dbname =] 'dbname'

要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。

[@filename1 =] 'filename_n'

数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。

返回代码值
0(成功)或 1(失败)

结果集


注释
只应对以前使用显式 sp_detach_db 操作从数据库服务器分离的数据库执行 sp_attach_db。如果必须指定多于 16 个文件,请使用带有 FOR ATTACH 子句的 Create DATABASE。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。

权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程。

示例
下面的示例将 pubs 中的两个文件附加到当前服务器。

EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

请参见

Create DATABASE

sp_attach_single_file_db

sp_detach_db

sp_helpfile

sp_removedbreplication

系统存储过程

步骤:
1.在要升级的SQL2000 Master库中执行如下语句

--EXEC sp_attach_db @dbname = N'pubs',
-- @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
-- @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

--下面的语句是按上面的来做的

select 'exec sp_attach_db @dbname=N'''+name+''', @filename1=N'''+filename+''',@filename2=N'''+filename+''''
from sysdatabases

2.将查询出来的内容全部复制,删除不需要附加的表及系统表.

3.修改或替换文件名和路径

5.将改后的数据库脚本在SQL2005的master表里执行一下. 附加就完了.

6.删除SQL2005中新表的数据库登录名.添加新的登录名.

附:
2005转到2000的步骤
1. 生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库
-- 勾选"为所选数据库中的所有对象编写脚本"
-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件

2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库

3. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成
第3个回答  2007-05-24
一般的数据迁移是没有什么问题,但是要注意你的存储过程或函数中如果应用到了系统表或系统视图,要注意修改成对应在SQL2005下的schema名称(sys)!

还有xp_cmdshell在SQL2005中已经作为高级选项了,不能够直接使用。
要是原来的程序中用到了,在2005中使用xp_cmdshell前请先打开高级选想开关:本回答被提问者采纳
第4个回答  2007-05-24
. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库

求mssql2000转换成mssql2005的最佳方法
1.在要升级的SQL2000 Master库中执行如下语句 --EXEC sp_attach_db @dbname = N'pubs',-- @filename1 = N'c:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\pubs.mdf',-- @filename2 = N'c:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\pubs_log.ldf'--下面的语句是按上面的来...

SQL2005怎么添加2000数据库
1.右击要还原的数据库--->属性--->选项--->设置兼容级别为:SQL Server 2000 (80)2.在指定了要还原的*.bak文件以后,选项--->设置 还原选项--->覆盖现有数据库(选上),其它默认。3.确定后你的mssql2000数据库备份文件就可以还原到mssql2005中了 ...

mssql2000升级mssql2005后出现小数截位
向下兼容的原则,2005可以兼容2000,但是反过来,有问题的说

如何在同一机器装上sql2000与SQL2005方法
1、因为sql2000安装过程中无法修改实例名称,故安装过程中必须先安装sql2000,然后再安装sql2005。安装sql2005时必须修改sql实例名称,否则将和sql2000的实例名称冲突。2、安装完sql2005后,开始准备用sql2000客户端工具连接sql2005,结果报告不能用sql2000客户端工具连接,只能用sql2005客户端工具连接,后证明...

请各位给个数据库降级(mssql2008转2000或2005)的最佳方案
确定数据库是你要降级的数据库, 并勾选"为所选数据库中的所有对象生成脚本" 单击"下一步", 把"表\/视图选项"中的所有属性都设置为"TRUE", "常规选项"中, 把"编写创建数据库的脚本"设置为TRUE, "为服务器版本编写脚本"设置为"SQL Server 2005"或者其他版本 单击下一步直到完成 ...

...附加上去就可以了 mssql2000数据库 不要使用2005
data里面是数据库文件,附加上去就可以了 mssql2000数据库 不要使用2005 这个应该是你下载源码的时候的一个说明把,意思是让你用MSSQL2000的数据库,不要用MSSQL2005的,因为源码开发的时候是用2000的,也许在2005中不兼容,或者某些功能使用不了。要知道怎麽连接数据库,看你源码中的配置文件就可以知道...

我是买的万网的空间但数据库只支持MSSQL2005的,但我们做网站是使用MS...
您再也不用为网站没有通过备案,顶级域名迟迟无法访问而烦恼了!!纯空间可免费申请URL转发服务,无需备案即可访问。M2型(150M,送独立IP、支持ASP或PHP,FTP管理,免费安装ASP论坛),免费提供备案平台服务。M3型(300M,送独立IP、支持ASP、NET或PHP,FTP管理,送50M SQL数据库),免费提供备案平台...

我刚学了mssql2000,毕业后想找数据库方面的工作,如数据库管理员或开发...
你要是做网站程序员的话,用MSSQL就学C#或VB,学C#可以用ASP。NET 学VB可以做ASP,上面说的都是做JSP或PHP的,他们都是有他们专用的数据库 PHP用MYSQL JSP用oralce

MSSQL2000拷贝如何数据库
最简单的方法,把数据库停了,把 mdf和ldf两个文件COPY过去,附加即可

MSSQL2000 是什么意思?
MSSQL就是Microsoft SQL Server是微软数据库管理软件,后面的2000应该算是版本号.SQL server拥有非常庞大的管理功能,要花费一定的费用购买使用权。MYSql MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、...

相似回答
大家正在搜