导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

动态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里是无效的么?
谢谢
...全文
91 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
当然可以使用。
你里面的'处理的不对。
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告