服务器SQl2000和SQl2005版本不同带来一系列问题解决方案

简介:

最近实施一个中型的门户网站,在项目编码已经结束测试完成后,发布服务器上,因为以前用到只有SQl2000,当前基于开发的SQL2005+VS2008,环境是.NET 3.5版本,这个时候就出现许多问题.一一描述并提供解决方案:

A:版本问题—这是你第一个必须面对的并且是核心问题:
因为在实施中用到Row_Number()函数进行简单的数据分页,很明显只有SQl2005以上版本才支持,首先让我们来看看数据库版本的具体划分:
版本获得方法如下:

1--获得当前数据库版本方法:
2A:Select @@Version —返回当前数据版本号(微软定义)
3--完整获得版本信息
4B:SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
5上述获得完整版本信息:
6
7(1)产品版本编号('productversion')(例如:9.00.1399.06 或者8.00.534)
8(2)产品级别('productlevel')(例如:RTM正式版)
9(3)版本('edition')(例如:Enterprise Edition-企业版)

SQL2000版本号查询结果:

SQl2005版本号查询结果:

在微软官方上看到版本区分如下:SQL2000和SQL2005版本号对比如下:

安装SQL2005时如果具有引导程序问题不大,如果压缩包中只是Server和Tools文件夹时:需要注意安装顺序非常重要,应该首先安装Tools目录下然后在安装Server目录服务器引擎,如果只安装Tools客户端工具,没有安装Server目录下数据引擎情况下,会导致sql2005默认链接的是SQL2000数据引擎也就是8.0版本,导致Row—Nummber等函数不支持的现象发生.问题关键是安装SQL 9.0版本数据库引擎既Server目录下,并重新生成一个新的数据库实例而非默认实例:
这样做主要目的是在SQlClint容易区分不同版本下不同的数据库实例,链接时取新建立的数据库实例引擎,执行T—SQL语句正确执行,查看版本是9.0,这点是很有必要,如果SQL语句出现不可预料的错误,数据引擎版本问题是很隐蔽而关键的问题,这也是我不断在前面不断区分和识别数据版本的用心所在。
安装完SQL2005后,开始准备用SQL2000客户端工具连接SQL2005,结果报告不能用SQL2000客户端工具连接,只能用SQL2005客户端工具连接,后证明SQL2005客户端工具可以同时连接SQL2000和SQL2005。

B:多版本下链接数据库
当数据库建立后另外一个问题就是多版本下链接数据库:其实在同一台机器上同时安装多个版本的数据包括orcal理论上都是可以的,

1--默认链接字符串
2public static readonly string connString = "Data Source=.;Initial Catalog=IssueDB;Uid=sa;Pwd=chen";//可以通过配置文件读取,请查MSDN

如上链接会报错的,因为先安装的SQL2000后装上SQL2005,DataSource通过.默认来指向的是SQL2000数据库引擎,回报出无法找到IssueDB这个数据库对象,同样默认数据库通信端口1433也被SQL2000占用,后来通过官方资料证明:SQL2000服务器用的端口始终是1433端口,而SQL2005使用的是动态端口,
在多版本下建立SQl2005一个新的数据库实例后,鉴于项目需要建议开辟新的通信端口,链接字符窜写法如下:

1--开辟一个新端口(当然在使用前应测试该端口是否被占用)连接字符窜
2public static readonly string connString = "Data Source=5A40BDACC26449F\\SQLEXPRESS:5048;Initial Catalog=IssueDB;Integrated Security=True";
3
4//5048为新开辟端口

SQl2005配置步骤如下:
(1):在 "程序—>配置工具—>SQlServer配置管理器"运行起来:选择SQl Native Client配置下客户端协议 如图显示:

(2)选中Tcp/ip选择属性配置 截图如下:

修改完成后需要重新关闭再次启动SQlserver服务配置才有效,通过程序连接数据库SQl2005,链接正常.
 


本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765547


相关文章
|
1月前
|
监控 关系型数据库 MySQL
|
27天前
|
弹性计算
阿里云服务器99元和199元提示“不符合活动条件”或显示价格为原价的解决方案
2024年阿里云推出了两款长效特惠云服务器,经济型e实例2核2G配置3M固定带宽40G ESSD Entry云盘,价格只要99元1年,通用算力型u1实例2核4G配置5M固定带宽80G ESSD Entry云盘,价格只要199元1年,而且购买之后还能享受续费同价的政策,这两款云服务器的购买资格为新老用户同享,但是还是有部分用户在购买时会提示“不符合活动条件”或者显示的价格是原价,本文为大家解析出现这一情况的原因是什么呢,以及我们应该如何解决。
阿里云服务器99元和199元提示“不符合活动条件”或显示价格为原价的解决方案
|
16天前
|
存储 应用服务中间件 文件存储
Ngnix服务器版本升级需求分析,如何不停止Ngnix服务进行升级
Ngnix服务器版本升级需求分析,如何不停止Ngnix服务进行升级
|
19天前
|
存储 弹性计算 大数据
阿里云ECS以其强大的弹性计算与存储能力,为大数据处理提供了灵活、高效、成本优化的解决方案
阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,如大数据型实例适合离线计算。ECS与OSS集成实现大规模存储,通过Auto Scaling动态调整资源,确保高效运算。案例显示,使用ECS处理TB级数据,速度提升3倍,成本降低40%,展现其在弹性、效率和成本优化方面的优势。结合阿里云生态系统,ECS助力企业数据驱动创新。
32 1
|
28天前
|
弹性计算 运维 Java
解决方案测评(高效构建企业门户网站方案)基于ecs&云效&云解析DNS&VPC结合的自搭建方案报告
该文档是一个关于使用ECS、云效、云解析DNS和VPC结合的自搭建方案报告。主要内容包括前言部分,可能详细探讨了如何集成这些阿里云服务以构建自定义系统。由于提供的内容有限,具体的实施方案和细节未在摘要中体现。
177 2
|
28天前
|
SQL druid Java
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
19 1
|
1月前
|
SQL 关系型数据库 数据库
nacos 2.2.3版本 查看配置文件的历史版本的接口 是针对MySQL数据库的sql 改成postgresql后 sql语句报错 该怎么解决
在Nacos 2.2.3中切换到PostgreSQL后,执行配置文件历史版本分页查询出错,因`LIMIT 0, 10`语法不被PostgreSQL支持,需改为`LIMIT 10 OFFSET 0`。仅当存在历史版本时报错。解决方案是调整查询SQL以兼容PostgreSQL语法。
|
2月前
|
存储 弹性计算 固态存储
*PolarDB-PG开源版本 基于ECS+ESSD云盘共享存储的部署测评**
PolarDB-PG在阿里云ECS与ESSD云盘的组合下展现优秀性能,简化部署流程,提供高并发写入时低延迟稳定性。ESSD的高性能IOPS和读取速度优化了数据库表现,只读节点实现近乎实时数据访问。分布式部署保证高可用性,即使面对故障也能快速切换。尽管ESSD初期成本较高,但长期看能降低总体拥有成本,尤其适合高并发、大数据量场景。此解决方案平衡了性能、可用性和成本,是企业级应用的理想选择。
|
1月前
|
SQL 存储 关系型数据库
sql数据库服务器
SQL数据库服务器是由Microsoft所开发的数据库服务器,它可以让一个企业利用Internet/Intranet来整合所需的数据库。SQL Server最初是由Sybase提供的,但Microso
|
2月前
|
存储 安全 数据安全/隐私保护
服务器数据恢复—服务器raid常见故障&解决方案
RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对于单独的物理硬盘,raid可以为用户提供更大的独立存储空间,更快的读写速度,更高的数据存储安全及更方便的统一管理模式。磁盘阵列是否能正常运转是保障服务器中数据正常读写的关键。