如何在不同版本的SQL Server中存储数据
作者:31993 发布时间:2009-01-15 13:06:00
SQL Server有几个版本都在使用中——4.2, 6.0, 6.5, 7.0, 2000,以及2005——你很有可能会需要从以前的版本中重新存储数据库到后面的版本中。
微软在7.0版本中对数据库引擎的工作方式和数据的存储方式作了一些非常巨大的变化。这就使得从7.0版本之前的SQL Server中重新存储数据的方式变得不那么直接。
7.0,2000和2005版本的SQL Server允许你将数据库重新存储到稍后的SQL Server版本中。7.0版本之前的任何东西都需要数据移植,在这个过程中你必须实际地将数据从原有的SQL Server版本中移动出来,再放入新的SQL Server版本中。
既然最新的版本是2005,那么我就讨论一下如何将数据从原有的SQL Server版本中移动到最新的数据库管理系统发布版本中。无论如何,这些技术同样也可以应用在7.0或者2000版本上。
从7.0之前版本的SQL Server中重新存储数据
我前面提到了,没有这样的一种直接方式可以将早于7.0版本之前的数据库中的数据仅仅是备份然后就重新存储这么简单直接。要将数据移动到SQL Server 2005中,就必须完成某些类型的数据移植,有可能是通过创建一个SSIS包,建立一个到你原有数据库版本的ODBC源。或者,你可以使用BCP(块拷贝程序)来将数据从原有的版本中移出来,移入SQL Server 2005数据库。
没有一种方式可以直接从备份文件中抽取数据。所以如果你只有一个你的数据库的备份拷贝,那么你就需要找到一个原有版本的SQL Server ,或者安装磁盘来建立起那个版本的SQL Server来重新存储数据。
SQL Server 7.0及其以后版本的重新存储
只要简单地从你的备份中重新存储数据库。这项工作就像你曾经作过的任何重新存储,要么使用GUI工具,要么是T-SQL命令。看看这些文章,了解如何执行重新存储:
·使用企业管理器来重新存储 SQL Server
·使用T-SQL 命令来重新存储SQL Server
·从事务日志中重新存储SQL Server
·从另外一个SQL Server中重新存储数据库
用7.0之前的版本,你可以使用数据移植处理进程将你的数据从原有版本的SQL Server中移动到新的版本中。这种方式要求两个数据库都必须是在线的。
你还可以使用attach 和detach两个选项来将你的数据库从原有版本中移植到新的版本中。
重新存储系统数据库
需要提出的一个说明就是你可以重新存储用户数据库,但是你不能从先前的版本中重新存储系统数据库到新的SQL Server版本中。当SQL Server改善功能的时候,大多数的修改都是存储在相同数据库中。新表的创建和原有表的修改(为什么你不能使用直接使用系统表的原因)都让重新存储系统数据库变得不可能。
你可以使用SSIS或者BCP方式来移植数据或者你在这些数据库中创建的新的对象,但是你不能移动整个数据库。
更新用户和登录信息
当重新存储数据库到一个完全不同的SQL Server实例环境中需要时刻记住的一个问题就是,用户和登录信息需要更新以确保数据库认证可以按照计划工作。参考从其它的SQL Server中重新存储数据库,学习如何进行。
正如你看到的,从SQL Server 7.0开始,微软已经开始让数据库管理员感觉到,把数据从比较老版本的SQL Server中移植到较新的版本中是相当简单的了。这个想法通常还包括一些向后的兼容。但是这个功能还会存在多久?它在SQL Server 2005中确实存在,但是下一个名为Katmai的SQL Server的发布版本会不会向后兼容,只有时间才知道了。
猜你喜欢
- 背景:Python是一种解释性的语言,执行速度相比C、C++等语言十分缓慢;因此我们需要在其它地方上下功夫来提高代码的执行速度。首先需要对代
- typing库一、 简介Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,
- 前面已经了解了关于PL/SQL编程的基础,本文将结合一个案例来加深对这些知识点的理解。一. 案例介绍 某数据库有两张表,是关于某公司员工资料
- 大数据处理经常要用到一堆表格,然后需要把数据导入一个list中进行各种算法分析,简单讲一下自己的做法:1.如何读取excel文件网上的版本很
- 前言这篇文章将为大家介绍:GoFrame 错误处理的常用方法&错误码的使用。如何自定义错误对象、如何忽略部分堆栈信息、如何自定义错误
- MySQL 提供了一个很有意思的Engine:Federated!如果你了解Linux下面的Link的话,就应该很好理解这个Federate
- 很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELECT查
- 以下虚线框内为mk.asp文件的具体代码:<%filename="test.htm"if request
- Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 :
- 锁定数据库的一个表 SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 SELECT
- 本文实例讲述了Python中unittest的用法,分享给大家供大家参考。具体用法分析如下:1. unittest module包含了编写运
- 本文向大家介绍一个javascript实现的动画。点击开始按钮div会往右移动,点击停止后,div停止移动,再点击则继续移动。请看下面代码:
- 本文实例讲述了python读写ini配置文件方法。分享给大家供大家参考。具体实现方法如下:import ConfigParserimport
- profiling是个很好用的mysql性能分析工具,今儿就来试验下profiling的功能。感谢 有爱玫瑰的博文:mysql 的 sql
- 算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。
- 这是一道常见的面试题,在实际项目中经常会用到。需求:求出以产品类别为分组,各个分组里价格最高的产品信息。实现过程如下:declare @t
- jQuery.parent(expr) &nb
- Python是编译型语言还是解释型语言?回答这个问题前,应该先弄清楚什么是编译型语言,什么是解释型语言。所谓编译执行就是源代码经过编译器编译
- 如何显示已在数据库编码了的相对应的记录?我做了一个歌曲库,在查询中使用了几个下拉菜单供选择条件用,如歌手的性别、区域、爱好等,由于选项太多,
- 故事还得从下面的图说起:what? 两条sql执行结果的id列居然不一致。。。。。。一、LIMIT 处理过程为了故事的顺利发展,我们得先创建