文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 微软SQL Server专区 » SQL Server数据库管理 » 有没有SQL2000升级SQL2005的实际手册       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: 有没有SQL2000升级SQL2005的实际手册  ( 查看:334  回复:3 )   
 该主题悬赏的20无忧币已被全部领完 
 
jackeyzhu
新新人类  点击可查看详细



帖子 8
精华 0
无忧币 16
积分 14
阅读权限 20
注册日期 2008-3-25
最后登录 2008-8-29 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-25 14:51   标题:有没有SQL2000升级SQL2005的实际手册
上一帖 |
本人学习从SQL2000升级到SQL2005,但,总是有些报错,数据也不能使用。不知道哪位有过经验,可否分享一下,在些先谢过了。



网络虽虚拟,技术无边界,来看看大家“真面目”!
2008-3-25 14:511楼
[ 顶部 ]
 
redking
副版主  点击可查看详细


十二生肖之狗   双鱼座   行业勋章   技术勋章   诚信兄弟   中秋活动勋章  
帖子 2657
精华 0
无忧币 34790
积分 4345
阅读权限 140
来自 (保密)
注册日期 2006-7-11
最后登录 2008-9-6 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2008-3-27 08:28  该回复被 jackeyzhu 奖励 20 点无忧币
此回复于2008-03-27 08:29被 redking 评为最佳答案

其实就是附加数据库

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

使用存储过程.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中新表的数据库登录名.添加新的登录名.
我在删除登录名是出现错误
“数据库主体在该数据库中拥有架构,无法删除”
删除其中原有的用户失败,系统提示“数据库主体在该数据库中拥有架构,无法删除”,查找资料,因为在SQL 2005中架构是做为实体对待的.所以要删除该用户,需要先删除该用户所拥有的架构或更改此架构的所有者,之后问题解决。



“绿色IT 从我做起”圈子有奖活动
2008-3-27 08:282楼
[ 顶部 ]
 
jackeyzhu
新新人类  点击可查看详细



帖子 8
精华 0
无忧币 16
积分 14
阅读权限 20
注册日期 2008-3-25
最后登录 2008-8-29 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-27 15:44 
谢谢你的方法。
不过,我问一下,我的数据库有点大,几十库,每个库里的表有几百个,这样做可能会慢。我现在已经找到了个方法,在虚拟机测试通过了。暂时没有发现什么问题,现将方法贴出来,请各位看一下。
升级过程:
1.        开始安装SQL SERVER 2005,运行setup。
2.        在“最终用户许可协议”页上,选中相应的复选框以接受许可条款和条件。接受许可协议后即可激活“下一步”按钮。
3.        在“SQL Server 组件更新”页上,安装程序将安装 SQL Server 2005 的必需软件。下一步。
4.        在“系统配置检查” 页上,将扫描安装计算机,看看是否存在可能阻止安装程序运行的情况,若有警告或错误,按提示排除。下一步。
5.        在“注册信息”页上的“姓名”和“公司”文本框中,输入相应的信息,接着输入密钥。
6.        在“要安装的组件”页上,请选择要安装的组件,建议全选。
7.        在“实例名”页上,默认会选中原SQL SERVER 2000的实例,则安装程序将升级所选的实例并提供安装其他组件的选项。
8.        升级的 SQL Server 实例配置为使用混合模式。
9.        接着下一步,直到完成。
10.        注册服务器 - 在升级过程中将删除 SQL Server 旧有实例的注册表设置。  升级之后,必须重新注册服务器。
11.        还原master(用单用户模式)。
12.        将原来SQL SERVER 2000的备份文件复制到SQL SERVER 2005数据库/Data下。



网络虽虚拟,技术无边界,来看看大家“真面目”!
2008-3-27 15:443楼
[ 顶部 ]
 
yy1297
技术员  点击可查看详细


十二生肖之鼠   天蝎座   行业勋章   技术勋章   诚信兄弟  
帖子 268
精华 0
无忧币 283
积分 275
阅读权限 30
注册日期 2007-8-10
最后登录 2008-8-16 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-5-25 11:19 
好复杂啊。。。。。



2008-5-25 11:194楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号