在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天有朋友推荐个活就是把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中创建目标数据库 复制代码 代码如下: 有可能会出现的问题: max附近有语法错误 server2000里面没有max这种用法,所以建议大家把SQL脚本里的MAX改成一个很大的数就是了,比如4000(4000好像是上限)。 odb问题 其他数据库我不知道,但是不论你用server什么数据库,只要不是你自己的,通常管理员是不会给你配odb权限的,所以把所有的odb檫掉就可以了。另外还有个办法,用你的远程数据库登录名可以改成那个用户的所有者,在本地也修改一下,然后再运行,就OK啦。 3. 将数据从2005导到2000 首先打开SQL Server 2005 的Manage Studio 复制代码 代码如下: 最后注意下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的步骤(简易版,一路不错形式) 2. 在2000中创建目标数据库 3. 将数据从2005导到2000 |
请发表评论