首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 相同的SQL语句在不同的机器上有的报错,有的没错。是哪里的配置原因? [已结贴,结贴人:wht6411]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wht6411
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-19 08:32:39 楼主
    有的SQL语句在我的机器上能很容易的通过,但是到的我们的server上报错,是不是server上面有的配置对SQL的要求高,所以通不过。
    比如一个简单的例子,下面这个SQL在我机器上是对的,到服务器上报错。
    SQL code
    SELECT CompanyID,CompanyName as CompanyID FROM Companies
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HEROWANG
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 08:36:341楼 得分:20
    不会吧,这可是标准的sql啊。看看连接的数据库是不是一样呢?另外,还是把错误贴出来吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qiuming0306
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 08:37:142楼 得分:0
    什么错误啊!错误日志呢!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kelph
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 08:39:213楼 得分:10
    报什么错
    如果数据结构一样

    区分大小写?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhengyongxianglove
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 08:41:184楼 得分:10
      首先我要提个建议:你应该把报错的提示告诉我们,否则神仙也解决不了这个问题。
      然后原因嘛我们也不好多猜,你检查下你连接的是否是 正确的服务器实例中的正确的数据库(算我多心了,这么低级的错误估计你是不会犯的,呵呵)。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wufeng4552
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 08:42:095楼 得分:10
    当前数据库是否正确
    表结构是否完全一样等
    贴出错误说明吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangjingxin1981
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 08:44:596楼 得分:10
    是不是二进制的原因-区分大小写
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wht6411
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 08:52:557楼 得分:0
    噢,这个没报错,等等我找另外一个。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wht6411
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 08:55:168楼 得分:0
    SELECT DISTINCT p.ContractID,ch.CompanyID,e.EmployeeID,e.FirstName,e.MiddleInitial,e.LastName,e.SSN,c.FederalTaxID,
                        CONVERT(VARCHAR(10),BeginLastDate.BeginDate,101) AS BeginDate,CONVERT(VARCHAR(10),BeginLastDate.LastDate,101) AS LastDate,CONVERT(VARCHAR(10),ch.EndDate,101) as EndDate
    FROM CprWeekly cw
    INNER JOIN CprHeader ch ON cw.CprHeaderID = ch.CprHeaderID
    ...

    ORDER BY e.FirstName,e.LastName,ch.EndDate

    这个地方ch.如果不去掉,在我机器上是对的,在server是出错。

    错误消息:
    ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HEROWANG
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 09:04:349楼 得分:0
    错误提示翻译过来是:

    如果distinct使用的话,排序的字段必须出现在select列表中

    是语句的语法问题,我觉得和配置没有什么太大的关系。详细比较下两个sql语句是否一样,例如是不是都使用了distinct选项
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wht6411
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 09:06:5710楼 得分:0
    SQL当然是一样的,出现这样的问题不是一次两次了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wht6411
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 09:08:1511楼 得分:0
    就是还有其它的情况,也是同样的SQL语句,我们这里测试完全通过,到那里出错了。
    服务器是windows 2003,我是windows xp.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wht6411
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 16:49:3712楼 得分:0
    UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • you_tube
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 17:07:4313楼 得分:10
    是你服务器配置的原因吧
    仔细检查一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • scckobe
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 23:21:2214楼 得分:30
    你这种属于特殊的情况,不要担心数据库配置的问题
    首先同时select distinct语句和order by语句的时候要求:order by子句出现的字段必须在select子句中出现
    而在你的sql语句中,你的sql语句并没有ch.EndDate字段,而是将它重命名为:EndDate
    如果你将ch.去除就不会出现这个问题。
    个人建议对于这种情况order by子句不要使用『表名.字段名』的格式,直接用字段名称就可以
    (如果重命名了就用已重命名的名称)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wht6411
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 08:45:4515楼 得分:0
    LS说的是,但是有时候不小心出错了,自己本地由于没报错也发现不了,装到服务器上也出问题了。比较郁闷。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved