标准版与服务器版SQL Server对SQL语句的支持问题

BES 2004-03-20 11:05:42
有如下语句:
select a.*
from #temproc a,
#PoList b,
(select Min(add_id) as add_id from #PoList where Ord_Typ=0 group by ItemNo) c
where a.ItemNo=b.ItemNo and b.Add_ID=c.Add_ID
在我机器上(SQL Server 2000),运行没问题,但将数据库移植到服务器则有问题,提示出错信息:
服务器: 消息 446,级别 16,状态 9,行 23
Cannot resolve collation conflict for equal to operation.
因要求所限(语句位于存储过程中,执行的动作都是动态生成的),所以此语句格式最好不要更改,即采用三表的关联方式不变; 不建议将select b.* from #PoList b,
(select Min(add_id) as add_id from #PoList where Ord_Typ=0 group by ItemNo) c where b.Add_ID=c.Add_ID 再独立出一张临时。

不知道是不是配置的问题,请帮帮忙, 谢!
...全文
51 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
BES 2004-03-21
  • 打赏
  • 举报
回复
不幸之极

重建还在进行,唯有停掉重装


不知服务器版SQL Server 2000在安装的时候该注意些什么? 也有听人说在同一台机上重装不能成功

这回真晕了


netcoder 2004-03-20
  • 打赏
  • 举报
回复
老邹说的对,检查你的数据表。
有没有排序冲突
zjcxc 元老 2004-03-20
  • 打赏
  • 举报
回复
这个是排序规则的问题,不是版本问题.

你检查一下,tempdb库,和你的数据库的排序规则是否一致
BES 2004-03-20
  • 打赏
  • 举报
回复

我在重建的时候未将用户数据库删除,不知道删了后会不会快些,但帮助上说会删除所有数据库及数据呀。 只有等着,万一不行,明天只好重装了
zjcxc 元老 2004-03-20
  • 打赏
  • 举报
回复
重建master数据库需要的时间确实比较长,但两个小时也夸张了一点吧? 我试过在我的电脑上重建,不到1个小时,是否你的服务器上的数据库很多?

继续等吧
netcoder 2004-03-20
  • 打赏
  • 举报
回复
呵呵
放一宿看看
BES 2004-03-20
  • 打赏
  • 举报
回复
问题是服务器的配置才是有问题的,因为所有用户的数据库用的都是Chinese_PRC_CI_AS的排序规则,所以关键是要改服务器,而不是用户表的,况且用户表实在太多,改起来也繁.

rebuildm执行了两个多小时,还没完,进程也没死,不知道是怎回来,又不敢冒然结束程序,快晕了
zjcxc 元老 2004-03-20
  • 打赏
  • 举报
回复
系统数据库根本就不能改.
pbsql 2004-03-20
  • 打赏
  • 举报
回复
用alter database命令改数据库的默认排序规则啊
netcoder 2004-03-20
  • 打赏
  • 举报
回复
相对而言,修改相关表相关列的排序规则 这一办法可行性比较高
BES 2004-03-20
  • 打赏
  • 举报
回复
谢谢楼上的各位回答:
我看了一下帖子http://search.csdn.net/expert/topic/57/5701/2003/4/22/1693904.htm中的内容,其中介绍可能通过SQL的自身的带的工具rebuildm来更改排序规则,可是现在服务器那边在一遍又一遍地重新配置进程与服务的过程(差不多半个小时左右了),不知结果如何

另外:除了重装SQL Server之外还有没有其它的办法

谢谢
lovvver 2004-03-20
  • 打赏
  • 举报
回复
同意。
pbsql 2004-03-20
  • 打赏
  • 举报
回复
要改服务器的默认排序规则的话,要重新安装SQL

要改某个数据库的默认排序规则的话,用alter database命令

要改某个表的默认排序规则的话,用alter table命令
feixianzhi 2004-03-20
  • 打赏
  • 举报
回复
支持是一样的!问题出在你身上!检查程序或设置;方法参见楼上几位的!
zjcxc 元老 2004-03-20
  • 打赏
  • 举报
回复
要改服务器的默认排序规则的话,要重新安装SQL,然后在安装过程中,有一步是选择排序规则的.

当然,你也可以像楼上那样,在查询时,强制指定排序规则.
realgz 2004-03-20
  • 打赏
  • 举报
回复
另:请参考 onlinehelp ——排序规则
realgz 2004-03-20
  • 打赏
  • 举报
回复
select *
from #t1 A inner join #t2 B
on A.name=B.name collate Chinese_PRC_CI_AI_WS
BES 2004-03-20
  • 打赏
  • 举报
回复
看了一下两台数据库的tempdb的属性,其排序规则确实不一样
我机器上的Server的排序规则是:Chinese_PRC_CI_AS
服务器上的是:SQL_Latin1_General_CP1_CI_AS

如何解决这个问题呢,最好是将服务器的改为:Chinese_PRC_CI_AS

(另外有时两个临时表之间进行关联也不行,有的则可以)

在线关注! 谢谢

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧