当前位置:首页 » 编程语言 » 打开账套sql高版本转低版本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

打开账套sql高版本转低版本

发布时间: 2022-06-26 21:15:32

1. 为什么sql server 高版本的数据库不能附加低版本 mdf文件

是这样的,662是SQL Server 2008 SP2以后的数据库版本号,SP2之前的SQL Server 2008
的数据库版本好是655,而661是SQL Server 2008 R2的数据库版本号,本身SQL Server 2008 R2的版本要比SQL Server 2008 要高,按常理661版的数据库文件是不能附加到支持655版本号的SQL Server 2008里的。至于出现这个蛋疼的提示是因为微软在SQL Server 2008 SP2里加入了15k分区数的功能,而发布SP2之前就已经发布了SQL Server 2008 R2了,由于SQL Server 2008 R2 RTM并不支持15k分区的功能,如果按常规SQL Server 2008还保持655的版本号的话就可能会出现附加15k分区的数据文件到SQL Server
2008 R2 RTM中,这肯定是不能附加的,所以微软为了解决这个难题,就打破常规,SQL Server 2008 SP2里将数据库的版本号改为662,这样,由SQL Server 2008 R2 RTM的数据库版本号比SQL Server 2008 SP2的低,所以自然就不能附加了,避免了麻烦,不过为了一15k分区的功能改变了版本号带来的副作用就像楼主这种情况了。
这时问题的根本缘由。
其实说白了,你是拿SQL Server 2008 R2的数据库附加到SQL Server 2008中,这肯定是不行的。要么将你现在的数据库实例升级到 SQL Server 2008 R2并安装最新的SP补丁之后再附加。要么将chat数据库附加到SQL Server 2008 R2版的数据库实例里,生成SQL Server 2008版的脚本文件,使用脚本文件部署到SQL Server 2008 SP2里。

至于前边有朋友说用备份的方式,如果理解了我前边说的就知道肯定也是行不通的。

2. excel怎样把高版本转化为低版本

高版本的excel文件是以后缀名xlsx结尾的,低版本文件是以xls结尾的。利用excel的另存为功能可以实现高低版本的转换。

1、用2007版excel软件打开高版本文件后,点击左上角的office按钮。

3. mysql 高版本数据转换低版本问题

很简单,从高版本数据库导出的时候,不需要完全备份形式,只需备份数据或是备份建库建表和数据SQL文件,然后到执行操作至低版本数据库中就可以了。

4. 如何把SQL Server数据库从高版本降级到低版本

直接给SQL Server数据库降级是不支持的。但您可以使用一个灵活的变通方法来解决这个问题。您可以使用SQL Server Management Studio中首先为一个较低的版本生成数据库脚本,然后使用数据导入/导出向导将原来数据库数据传输到高版本数据库中。例如,如果你想降低一个SQL Server 2008数据库到SQL Server 2005,您可以按照以下步骤:
1. 在SQL Server Management Studio 2008中打开SQL Server2008数据库。
2.在对象资源管理器中右键单击数据库名称并选择“任务生成脚本......”
3.在“脚本向导”对话框中,选择数据库的名称,并检查“脚本所有在选择数据库对象”。然后点击“下一步”。
4.设置为SQL Server2005的服务器版本的脚本“选项”。
5. SQL Server 2005中运行脚本。
6. 使用SQL Server导入和导出向导从SQL Server 2008到SQL Server 2005导入数据
同样,如果你想降低一个SQL Server 2005数据库到SQL Server 2000,你也可以在SQL Server 2005 Management Studio中执行上述步骤。

5. 用友帐套问题:SQL数据库升级至2008,怎么打开SQL2000的用友帐套

具体检查用友版本,另外是本机升级还是异机升级?

任何升级操作前请首先做好数据备份!

本级升级可以直接将SQL2000数据库文件(MDF和LDF文件)附加到SQL2008里,然后配置用友的数据连接即可。
如果是异机升级,将原SQL2000服务停止,拷贝数据库文件(MDF和LDF文件)到SQL2008服务机上,然后附加。

用友ERP-U8系列产品相关数据库为UF***(包含UFSYSTEM,UFDATA_帐套号_年度)其中年度数据物理文件名都为UFDATA.MDF和UFDATA.LDF,每个年度独立文件夹。
如果是其他产品请检查数据库名,除了系统数据库之外的数据库我建议你都附加到SQL2008上。

6. sql高版本向低版本附加报错,谁能提供解决的方法呀

  1. SQL 只支持向后兼容,

  2. 所以高版本的数据库不能在低版本的SQL 上附加。

  3. 解决办法:先在同版本SQL下附加数据库,

  4. 在使用SQL 脚本导出表结构与数据库,

  5. 存储过程等,再在低版本数据库上创建一个新数据库,

  6. 把脚本执行。

7. 如何把SQLServer数据库从高版本降级到低版本

由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接【分离/附加】或者【备份/还原】数据库,在
不同版本之间存放。往往就会遇到版本不兼容的问题。前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错:

运行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出这个版本不兼容问题,大部分情况
下,从低版本升级到高版本,只要不是跨度太大,如2000升级到2012,都不会怎么报错。除非使用了一些新版本不兼容的特性如*=来实现left
join的语句。但是就像上图那样,从高版本还原到低版本的时候,问题就出现了,而且几乎一定会报错。
下面给出几个小建议,例子是从2008 降级到2005:
方法一:使用图形化操作(GUI),打开SSMS(SQL Server Management Studio)

步骤1:右键你要降级的数据库,按下图选择:

步骤2:在对话框中选择:

步骤3:在【高级】中选择下图:

步骤4:把脚本保存起来,然后在SQLServer2005中运行脚本。
详细步骤可以看:http://bbs.csdn.net/topics/390438560?page=1#post-394316973 中的13楼的回复,有截图
步骤5:通过【任务】→【导入数据】,把数据从2008导入到使用脚本创建的库上如下图,就完成了:

方法二:使用系统自带的存储过程实现:sp_dbcmptlevel ——将某些数据库行为设置为与指定的 SQL Server 版本兼容
下面是其内部实现代码:

[sql] view plain print?
SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO
create procere sys.sp_dbcmptlevel -- 1997/04/15
@dbname sysname = NULL, -- database name to change
@new_cmptlevel tinyint = NULL OUTPUT -- the new compatibility level to change to
as
set nocount on

declare @exec_stmt nvarchar(max)
declare @returncode int
declare @comptlevel float(8)
declare @dbid int -- dbid of the database
declare @dbsid varbinary(85) -- id of the owner of the database
declare @orig_cmptlevel tinyint -- original compatibility level
declare @input_cmptlevel tinyint -- compatibility level passed in by user
,@cmptlvl80 tinyint -- compatibility to SQL Server Version 8.0
,@cmptlvl90 tinyint -- compatibility to SQL Server Version 9.0
,@cmptlvl100 tinyint -- compatibility to SQL Server Version 10.0
select @cmptlvl80 = 80,
@cmptlvl90 = 90,
@cmptlvl100 = 100

-- SP MUST BE CALLED AT ADHOC LEVEL --
if (@@nestlevel > 1)
begin
raiserror(15432,-1,-1,'sys.sp_dbcmptlevel')
return (1)
end

-- If no @dbname given, just list the valid compatibility level values.
if @dbname is null
begin
raiserror (15048, -1, -1, @cmptlvl80, @cmptlvl90, @cmptlvl100)
return (0)
end

-- Verify the database name and get info
select @dbid = dbid, @dbsid = sid ,@orig_cmptlevel = cmptlevel
from master.dbo.sysdatabases
where name = @dbname

-- If @dbname not found, say so and list the databases.
if @dbid is null
begin
raiserror(15010,-1,-1,@dbname)
print ' '
select name as 'Available databases:'
from master.dbo.sysdatabases
return (1)
end

-- Now save the input compatibility level and initialize the return clevel
-- to be the current clevel
select @input_cmptlevel = @new_cmptlevel
select @new_cmptlevel = @orig_cmptlevel

-- If no clevel was supplied, display and output current level.
if @input_cmptlevel is null
begin
raiserror(15054, -1, -1, @orig_cmptlevel)
return(0)
end

-- If invalid clevel given, print usage and return error code
-- 'usage: sp_dbcmptlevel [dbname [, compatibilitylevel]]'
if @input_cmptlevel not in (@cmptlvl80, @cmptlvl90, @cmptlvl100)
begin
raiserror(15416, -1, -1)
print ' '
raiserror (15048, -1, -1, @cmptlvl80, @cmptlvl90, @cmptlvl100)
return (1)
end

-- Only the SA or the dbo of @dbname can execute the update part
-- of this procere sys.so check.
if (not (is_srvrolemember('sysadmin') = 1)) and suser_sid() <> @dbsid
-- ALSO ALLOW db_owner ONLY IF DB REQUESTED IS CURRENT DB
and (@dbid <> db_id() or is_member('db_owner') <> 1)
begin
raiserror(15418,-1,-1)
return (1)
end

-- If we're in a transaction, disallow this since it might make recovery impossible.
set implicit_transactions off
if @@trancount > 0
begin
raiserror(15002,-1,-1,'sys.sp_dbcmptlevel')
return (1)
end

set @exec_stmt = 'ALTER DATABASE ' + quotename(@dbname, '[') + ' SET COMPATIBILITY_LEVEL = ' + cast(@input_cmptlevel as nvarchar(128))

-- Note: database @dbname may not exist anymore
exec(@exec_stmt)

select @new_cmptlevel = @input_cmptlevel

return (0) -- sp_dbcmptlevel
GO

语法

[sql] view plain print?
sp_dbcmptlevel [ [ @dbname = ] name ]
[ , [ @new_cmptlevel = ] version ]

参数
[ @dbname = ] name
要为其更改兼容级别的数据库的名称。数据库名称必须符合标识符的规则。name 的数据类型为 sysname,默认值为 NULL。
[ @new_cmptlevel = ] version
数据库要与之兼容的 SQL Server 的版本。version 的数据类型为 tinyint,默认值为 NULL。该值必须为下列值之一:
80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008
返回代码值
0(成功)或 1(失败)

注意事项:
后续版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。 改为使用 ALTER DATABASE 兼容级别

8. 如何将高版本的mysql数据库导入到低版本的PHP数据库中

1.打开mysql管理工具,一般是
phpmyadmin
或Navicat,都是大同小异
2.打开导入工具,导入sql文件

9. 如何把高版本的sqlserver 还原到低版本的 sqlserver

是否大家有遇到过开始使用高版本的sql server当部署时却被告知服务器环境只能使用当前低版本的sql server,我就遇到了,我开发时使用的是sql 2008 r2 到部署时被告之段时间内不能升级到r2,只要将就部署了 。 但高版本迁移到低版本普通方法是行不通的,
1.我直接在sql2008附加sql2008r2的数据库,结果 “版本为 661,无法打开。此服务器支持 655 版及更低版本。不支持降级路径。” 死路一条,呵呵。
2.在sql2008里建立新数据库,然后通过复制数据方法,结果“ LiveUpdate returned a non-critical error. Available content updates may have failed to install.” 又是死路一条。
3.用数据库镜像,结果“由于数据库可能有尚未备份的大容量日志记录更改,所以无法启用数据库镜像。必须在镜像上还原主体数据库的上一次日志备份。”意思是你不需要去还原,又是死路一条 4.用用导入导出的功能吧。 这个方法关键是如何确保保留原有表结构的主键、外键等 分两个情况,对于数据库数据量小的,可以很方便的解决 a.小数据的情况 1.先在低版本的服务器上建立同名的数据库。 2.在高版本的服务器上右键点击目标数据库->任务->生成脚本 3.在选择对象->选择特定数据库对象 4.选择表、视图、存储过程,然后下一步 5.关键在这,这一步里,请选择”高级“,选项里选择[编写DROP和Create脚本]项的”编写DROP和Create脚本“,以及[编写脚本和数据类型]项的“架构和数据" 6.保存脚本 7.在低版本的数据库下执行脚本即可。 b.大数据情况 按理应该也可以通过类似包含架构和数据的方式来做,但是由于包含大数据的时候脚本文件太大,无法在分析器里执行,所以我们得绕一下。 1~4步和a情况相同 5.这步我们选择”高级“,选项里选择[编写DROP和Create脚本]项的”编写DROP和Create脚本“,以及[编写脚本和数据类型]项的“架构" 6.保存脚本 7.在低版本的数据下执行脚本,注意(ALTER TABLE 表名 WITH CHECK ADD CONSTRAINT [外键名] FOREIGN KEY(字段) REFERENCES 表名(字段))这个先不要执行。 8.现在可以通过导入导出任务先将表的内容导入到低版本的数据库内 9.再执行脚本内(ALTER TABLE 表名 WITH CHECK ADD CONSTRAINT [外键名] FOREIGN KEY(字段) REFERENCES 表名(字段))这样的语句,此处将表的外键附加上。 10.。。大功告成