sql 2005 和2000 的怪异问题

studyking 2008-11-18 05:46:06
select distinct b.* from a b,a c where
b.id=c.id
and (select count (*) from f_split(a.sid,','))>0

f_split是网上找的一个split函数。这句话在sql server 2005 执行没有问题,但是在2000下有问题 。
我把2000下的数据库附加到2005也是出现问题。我在2005直接创建表 执行的话什么问题都没有
...全文
159 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dobear_0922 2008-11-19
  • 打赏
  • 举报
回复
少了表别名:
select distinct b.* from a b,a c where
b.id=c.id
and (select count (*) from f_split(a.sid,',') tb)>0
dobear_0922 2008-11-19
  • 打赏
  • 举报
回复
f_split 里面用到了2000不支持的东东,如varchar(max)等,,,
fcuandy 2008-11-19
  • 打赏
  • 举报
回复
and (select count (*) from dbo.f_split(a.sid,',') x)>0
studyking 2008-11-19
  • 打赏
  • 举报
回复
ALTER function [dbo].[f_split](@c varchar(2000),@split varchar(2))
returns @t table(col varchar(20))
as
begin
while(charindex(@split,@c)<>0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
end
CN_SQL 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 studyking 的帖子:]
select distinct b.* from a b,a c where
b.id=c.id
and (select count (*) from f_split(a.sid,','))>0

f_split是网上找的一个split函数。这句话在sql server 2005 执行没有问题,但是在2000下有问题 。
我把2000下的数据库附加到2005也是出现问题。我在2005直接创建表 执行的话什么问题都没有
[/Quote]
你的问题应该是出在这个函数里引用了2005下特有的函数或者语法,所以不能在2000下执行
而你的2000下的数据库附加到2005为什么还出问题?

那是因为附加完以后,兼容级别还是2000的,你需要修改兼容级别为2005的,才不会有问题,可执行语句:


EXEC sp_dbcmptlevel '你的数据库', '90';
GO

  • 打赏
  • 举报
回复
估计是这个函数里面使用2005的新的函数或者一些新的内容。

新的函数,或者max之类的
水族杰纶 2008-11-18
  • 打赏
  • 举报
回复
现在只能看f_split内容了
这是个自定义函数
里面有可能有SQL2005的几个新函数,2000无法识别
所以报错
等不到来世 2008-11-18
  • 打赏
  • 举报
回复
把f_split内容贴出来看看,
可能里面包含2005的新语法,2000识别不了。
afahvbvb 2008-11-18
  • 打赏
  • 举报
回复
这个是SQL SERVER2005里面追加的函数,2000里面并没有,所以在2000的服务器里面肯定执行会错误的
类似的比较典型的还有:
一 排序函数
row_number() +1递增返回行号
dense_rank() 同数量等级的数据返回相同名次,下级数量等级的排名为上级数量等级的排名+1
rank() 同数量等级的数据返回相同名次,下级数量等级的排名为上级所有数据总数+1

二 行列转换
PIVOT()
等等
csdyyr 2008-11-18
  • 打赏
  • 举报
回复
select distinct b.* from a b,a c where
b.id=c.id
and (select count (*) from dbo.f_split(a.sid,','))>0
青锋-SS 2008-11-18
  • 打赏
  • 举报
回复
错误信息呢?
青锋-SS 2008-11-18
  • 打赏
  • 举报
回复
有什么问题?

34,872

社区成员

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

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