动态sql问题

newmankind 2005-10-09 04:16:00
是否动态sql里不能使用MSSQL的自身函数?
例如
declare @s varchar(8000)
set @s = ''
select @s = @s + ','+a.ModelDate+' = sum (case a.modelDate when '''+a.modelDate+''' then a.qty else 0 end )'
from #proSMSsale a group by a.ModelDate order by a.ModelDate


exec('select a.provinceCode '+@s+ 'from #proSMSsale a group by a.provinceCode order by
charindex('',''+a.provincecode+'','','',Beijing,TianJin,HeBei,HeiLongJiang,JiLin,LiaoNing,ShanXi,ShanDong1,ShanDong2,ShanX,XinJiang,ShangHai,JiangSu1,JiangSu2,ZheJiang1,ZheJiang2,AnHui,FuJian,JiangXi,HuBei,HeNan,GuangDong2,GuangDong4,GuangDong1,GuangDong3,GuangXi,HuNan,Guizhou,SiChuan,ChongQing,'')')

charindex 在exec里是无效的么?
谢谢
...全文
125 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Well 2005-10-09
  • 打赏
  • 举报
回复
我建議樓主在用動態語句的同時不要直接用exec('字符串')
這樣多的話調試起來比較麻煩的,
定義一個varchar變量這個變量的長度當然要足夠長了。
然後用print輸出看有沒有什麼語法錯誤。
要不就在查詢分析器裡運行一下看有沒有問題。
要是沒有問題,動態語句也是沒有問題。
這樣調試容易多了。
云中客 2005-10-09
  • 打赏
  • 举报
回复
看不出有什么问题,楼主,你的错误在哪里啊
newmankind 2005-10-09
  • 打赏
  • 举报
回复
ok,是我自己犯了个低级错误,不好意思,谢谢大家
haifeng1012 2005-10-09
  • 打赏
  • 举报
回复
怎么样才能把动态语句的内容输出到变量或者数组里??
newmankind 2005-10-09
  • 打赏
  • 举报
回复
上午作了一个类似的排序,但是没有问题,为什么这个就这么怪异呢?
newmankind 2005-10-09
  • 打赏
  • 举报
回复
我也试过了,好像单独拿出来排序也不是预期的效果,问题在哪呢?
newmankind 2005-10-09
  • 打赏
  • 举报
回复
没有错误,就是根本没有按照预想的排序
mschen 2005-10-09
  • 打赏
  • 举报
回复
chareindex可以在exec里边呀!
$扫地僧$ 2005-10-09
  • 打赏
  • 举报
回复
你用 print 看看你的句子是否有问题!
rivery 2005-10-09
  • 打赏
  • 举报
回复
’好像没有问题。楼主把错误贴出来看看。
或者把你的动态语句不要执行,先print 出来,然后在查询分析器中执行看是什么错误。
rivery 2005-10-09
  • 打赏
  • 举报
回复
当然可以使用。
你里面的'处理的不对。

34,576

社区成员

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

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