GVKun编程网logo

SQL server 2005转换为SQL server 2000的方法(sql2008转2005)

19

对于想了解SQLserver2005转换为SQLserver2000的方法的读者,本文将提供新的信息,我们将详细介绍sql2008转2005,并且为您提供关于.NET中SQLServer2000、SQ

对于想了解SQL server 2005转换为SQL server 2000的方法的读者,本文将提供新的信息,我们将详细介绍sql2008转2005,并且为您提供关于.NET 中SQL Server 2000、SQL Server 2005 连接字符串、SQL Server 2000/2005/2008删除或压缩数据库日志的方法、SQL Server 2005 数据库转 SQL Server 2000的方法小结、SQL Server 2005与sql 2000之间的数据转换方法的有价值信息。

本文目录一览:

SQL server 2005转换为SQL server 2000的方法(sql2008转2005)

SQL server 2005转换为SQL server 2000的方法(sql2008转2005)

sql server 2005转换为sql server 2000的方法(以BlogEngine为例)

直接restore或附加应该是不行的, 用脚本+导数据肯定没有问题。
sql server 2005转换为sql server 2000的步骤
1. 生成for 2000版本的数据库脚本


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


2. 在2000中创建目标数据库

 

脚本中 [nvarchar](max) 替换为 [ntext]

删除类似于EXEC dbo.sp_grantdbaccess @loginame = N'user', @name_in_db = N'user'的语句


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


3. 将数据从2005导到2000


sql Server 2005 的manager studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据(sql Server Express 无此项功能)

【使用sql Manager 2005导出数据脚本. 注意:sql server 2000 查询分析器限制sql脚本的大小,小于64K。】
-- 在"sql Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成

***********************************

.NET 中SQL Server 2000、SQL Server 2005 连接字符串

.NET 中SQL Server 2000、SQL Server 2005 连接字符串

摘要: SQL Server 2005和SQL Server 2000在数据库访问上面是通用的,关键在一个 连接 串的配置,其实这两个数据的 连接 串是可以通用的,关键是数据库服务器地址的问题。SQL Server 2005和2000数据库默认访问端口不一样。2005是2317,2000的是1433。 微软的

摘要:SQL Server 2005和SQL Server 2000在数据库访问上面是通用的,关键在一个连接串的配置,其实这两个数据的连接串是可以通用的,关键是数据库服务器地址的问题。SQL Server 2005和2000数据库默认访问端口不一样。2005是2317,2000的是1433。

 

 

微软的SQL Server 2005和SQL Server 2000在数据库访问上面是通用的,关键在一个连接串的配置,其实这两个数据的连接串是可以通用的,关键是数据库服务器地址的问题。SQL Server 2005和2000数据库默认访问端口不一样。2005是2317,2000的是1433。下面四个连接串都可以访问2000。   
 
Server=myServerAddress;Database=DatabaseName;Uid=UserName;Pwd=Password;  
Data Source=myServerAddress;Initial Catalog=DatabaseName;User ID=UserName;pwd=Password;  
Server=myServerAddress,1433;Database=DatabaseName;Uid=UserName;Pwd=Password;  
Data Source=myServerAddress,1433;Initial Catalog=DatabaseName;User ID=UserName;pwd=Password;   

 
myServerAddress是数据库服务器地址,当您只写地址不写端口的情况下他们默认访问的是1433端口,也就是sqlserver 2000的数据库服务器。如果你想访问sqlserver 2005你就必须加上访问端口(,2317)或者在后面添加(\SQLExpress),如下面   
 
Server=myServerAddress,2317;Database=DatabaseName;Uid=UserName;Pwd=Password;  
Data Source=myServerAddress,2317;Initial Catalog=DatabaseName;User ID=UserName;pwd=Password;  
Server=myServerAddress\SQLExpress;Database=DatabaseName;Uid=UserName;Pwd=Password;  
Data Source=myServerAddress\SQLExpress;Initial Catalog=DatabaseName;User ID=UserName;pwd=Password; 
  
 
通过对比你就会发现,这里面的关键部分就是端口, 只要端口对了就任何问题,至于他们的访问形式和方法是完全一样,因为他们虽然不是双胞胎但也是亲兄弟,沟通方式一样,唯一的就是名字不一样。

SQL Server 2000/2005/2008删除或压缩数据库日志的方法

SQL Server 2000/2005/2008删除或压缩数据库日志的方法

由 于数据库日志增长被设置为“无限制”,所以时间一长日志文件必然会很大,一个400G的数据库居然有600G的LOG文件,严重占用了磁盘空间。由于主要 是做OLAP,所以数据库本身不会有大变动,所以日志也就没有多少作用了,因此想办法把数据库日志文件收缩到很小或者删除。

网 上搜索相关解决方案后,得到的答案丰富多彩,但是真正管用的方案并不多,这里分享一个csdn上找到的方法。这个方法讲述了SQL Server 2005和SQL Server 2008在收缩数据库日志的不同之处,颇有帮助。同时,该方法的效率很高,收缩600G的日志到10M只花了不到30秒。

最后附上代码:

适用于SQL Server 2000的方法

DUMP TRANSACTION [jb51] WITH NO_LOG
BACKUP LOG [jb51] WITH NO_LOG
DBCC SHRINKDATABASE([jb51])

其中jb51为数据库名

适用于SQL Server 2005的方法

Backup Log [jb51] WITH no_log
GO
DUMP TRANSACTION [jb51] WITH no_log
GO
USE jb51 
DBCC SHRINKFILE (2)
GO

说明:由于SQL Server 2008对文件和日志管理进行了优化,所以以上语句在SQL2005中可以运行但在SQL2008中已经被取消。

USE[master]
GO
ALTER DATABASE jb51 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE jb51 SET RECOVERY SIMPLE --简单模式
GO
USE jb51
GO
DBCC SHRINKFILE (N''DNName_Log'', 11, TRUNCATEONLY)

GO

USE[master]
GO
ALTER DATABASE jb51 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE jb51 SET RECOVERY FULL --还原为完全模式
GO

其中jb51为数据库名,DNName_Log为日志名,需要找一下,具体的说明可以参考这篇文章,也有图文方法 https://www.jb51.net/article/136523.htm

这篇文章就介绍到这了,需要的朋友可以参考一下,希望大家以后多多支持。

您可能感兴趣的文章:
  • SQLServer清理日志文件方法案例详解
  • SQL SERVER 2008数据库日志文件收缩的方法
  • SQL Server无法收缩日志文件的原因分析及解决办法
  • SqlServer修改数据库文件及日志文件存放位置
  • SQL Server 2008 清空删除日志文件(瞬间日志变几M)
  • Sql Server 压缩数据库日志文件的方法

SQL Server 2005 数据库转 SQL Server 2000的方法小结

SQL Server 2005 数据库转 SQL Server 2000的方法小结

今天有朋友推荐个活就是把Sql Server 2005的数据库转到Sql Server 2000里,但实际操作起来遇到的问题还不少,网上搜了一些办法,在此陈列出来,并把我使用时遇到的问题及解决方案一并记录下来,以备后期查阅

前几步和网上说的一样,先生成2000的脚本,然后再到2000里面执行。操作如下:

打开 SQL Server 2005 的Manger Studio

-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例

找到你要转换的数据库(建议先将此数据库里的登录名清空,否则转换会出现问题)

-- 右键选择要转成 SQL Server2000 的数据库

-- 选择 任务

-- 选择 生成脚本

-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库

-- 勾选"为所选数据库中的所有对象编写脚本" (这个勾不要其实也可以的,根据你的需要来。)

-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"

-- 其他选项根据需要设置

-- 最后把脚本保存到一个 .sql 脚本文件

复制代码 代码如下:

有可能会遇到的问题:
目标服务器版本不支持该对象或不支持该对象的一个属性。 (Microsoft.SqlServer.Smo)
脚本无法成功生成。此问题是由于“数据库兼容性级别”导致的。
解决方案:
server有个改兼容性级别的语句:
sp_dbcmptlevel [ [ @dbname = ] name ] [ , [ @new_cmptlevel = ] version ]
语句如下:
EXEC sp_dbcmptlevel ''你的数据库名'', ''80'';
GO
这个80就是各个版本对应的版本号
60 = SQL Server 6.0
65 = SQL Server 6.5
70 = SQL Server 7.0
80 = SQL Server 2000 ——8.0
90 = SQL Server 2005 ——9.0
由于是转到2000于是兼容性级别就要调到80

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

复制代码 代码如下:

有可能会出现的问题:
max附近有语法错误
server2000里面没有max这种用法,所以建议大家把SQL脚本里的MAX改成一个很大的数就是了,比如4000(4000好像是上限)。
odb问题
其他数据库我不知道,但是不论你用server什么数据库,只要不是你自己的,通常管理员是不会给你配odb权限的,所以把所有的odb檫掉就可以了。另外还有个办法,用你的远程数据库登录名可以改成那个用户的所有者,在本地也修改一下,然后再运行,就OK啦。

3. 将数据从2005导到2000

首先打开SQL Server 2005 的Manage Studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键选择要转成 SQL Server2000 的数据库--选择 任务 --导出数据
(注意,如果你的Manage Studio 为 Express版本,那任务里是没有导出数据选项的,你可以直接找到你的数据安装目录里的Binn文件夹,例如 C:\Program Files\Microsoft SQL Server\90\DTS\Binn 然后执行DTSWizard.exe文件即可。)
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表(注意,如果表中有标识的话,要在此处选中表,然后单击下方的“编辑映射”按钮,新开窗口中勾选“使用标识插入”,每个有标识的表都要这样选择一次。还有,此处导入数据如果牵扯到主外键关系或者其他约束的话,一定要分批次按照关系的先后顺序导入,否则会报错。)
-- 最后完成

复制代码 代码如下:

最后注意下2000的select top 后跟的不可以是表达式,所以如果你的分页里有用到类似
declare @pageIndex int
select top (@pageIndex-1)*12 newsID from News
的话,请一律改成字符串拼接方法,例如下面的例子:
declare @strSql varchar(1000)
declare @pageIndex int
set @pageIndex= (@pageIndex-1)*12
set @strSql=''select top ''+str(@pageIndex)+''  newsID from News''
exec (@strSql)

sql server 2005转到2000的步骤(简易版,一路不错形式)

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

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

3. 将数据从2005导到2000
打开SQL Server 2000的企业管理器
-- 右键要导入数据的数据库
-- 任务
-- 导入数据
-- 在SQL Server 导入和导出向导的选择数据源步骤中, 确定选择的是要导出的数据库
-- 在选择数据源步骤中, 连接到 2005, 并选择源数据库
-- 在选择源表和源视图中, 选择所有的表
-- 最后完成

您可能感兴趣的文章:

SQL Server 2005与sql 2000之间的数据转换方法

SQL Server 2005与sql 2000之间的数据转换方法

2005不论是性能还是安全性都是SQL SERVER2000有所增强,现有不少企业在使用2005,或是有的用户是2000与2005同时使用,那么这中间就涉及到双数据的转换问题:

今天我们就来看一下相关的实现方法:

本人的实现环境介绍:

方法一: 使用分离与附加 该方法适合于将SQL Server 2000中的数据转换到SQL Server2005 ,但反之不行。

例如:现在将SQL SERVER2000中的DUFEI数据库通过分离与附加的方法导入到SQL SERVER 2005中:

步骤1: 在 2000机器上运行:

USE master;GO
EXEC sp_detach_db @dbname = N''dufei'';GO

步骤2:将分离再来的MDF及LDF文件复制到 2005机器上:

步骤3:在2005机器上执行以下命令:将复制的文件附加到数据库中即可:

USE master;Go
EXEC sp_attach_db @dbname = N''dufei'', 
@filename1 = N''c:\dufei_data.mdf'', 
@filename2 = N''c:\dufei_log.ldf''; GO

此时:导入成功!

方法二:利用备份与还原:

实例:现将2000中的DB1数据库备份后,利用还原的方法导入到2005中:

步骤1:在SQL2000中执行:

backup database DB1 to disk=''c:\DB1.BAK''

步骤2:将备份文件复制到 SQL 2005的机器上:将生成的DB1.BAK复制到对方机器上:

步骤3: 在SQL 2005的机器上执行:

restore database db1 from disk=''c:\db1.bak''

因为路径问题,所以默认情况下不会成功:也就是说如果使用RESTORE的默认语法,是不行的:

因此,我们要对路径进行修改:


RESTORE DATABASE db1 FROM DISK = ''C:\db1.bak'' WITH FILE = 1, MOVE N''db1_Data'' TO N''c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\db1.MDF'', MOVE N''db1_Log'' TO N''c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\db1_1.LDF''

则还原成功!

但如果是将2005中的数据使用此方法导到2000则会报错:

为备份或还原操作指定的设备太多;只允许指定 64 个设备。

服务器: 消息 3013,级别 16,状态 1,行 1

RESTORE DATABASE 操作异常终止。

所以两种方法都不能实现将SQL SERVER 2005的数据导到 SQL SERVER 2000中,除非使用下面的两种方法:

方法三:导入导出:

实例:将 2005中的数据库DUFEI导出到SQL 2000中

步骤1:

成功!

反之从 SQL2000导到SQL 2005也是一样的:例如将PUBS导到2005中

方法四:使用脚本: 但我个人不推荐使用此方法,因为在此过程中依然要使用数据的导入/导出来转换数据,也就是说使用脚本不能让记录也一起导入到对方的数据库中,仍然要借助其他方法!如果数据库中对象较多,如触发器,存储过程等,可以考虑使用脚本和数据的导入\导出相结合.

这只是我个人的感觉,不知道对否,还望大家多批评指正!

本文出自 “杜飞” 博客

您可能感兴趣的文章:

关于SQL server 2005转换为SQL server 2000的方法sql2008转2005的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于.NET 中SQL Server 2000、SQL Server 2005 连接字符串、SQL Server 2000/2005/2008删除或压缩数据库日志的方法、SQL Server 2005 数据库转 SQL Server 2000的方法小结、SQL Server 2005与sql 2000之间的数据转换方法的相关知识,请在本站寻找。

本文标签:

上一篇SQL Server 临时禁用和启用所有外键约束(sql server临时表作用)

下一篇sql server日期时间函数(sqlserver日期时间函数)