您的位置:首页 > 数据库

Sybase IQ 的存储过程中的一些问题

2005-11-02 15:55 381 查看
1.在建立存储过程时,必须要有比较好的编辑工具,否则IQ会帮你把存储过程优化得面目全非:比如连续的赋值语句
select @a1 = 'a1'
select @a2 = 'a2'
select @a3 = a1 + a2
想想结果是'a1a2',但是它会帮你优化为select @a1 = 'a1' ,@a2 = 'a2',@a3 = a1 + a2  ,根据从右到左的原则最后的@a3 为空,见鬼吧!当然避免这种情况的方式是将每句话用begin .. end包起来,但是这绝对麻烦。


2.IQ对引号有自己的理解方式,当你将开关quoted_identifier打开时会发现用""包起来的它都认为是列名而不是字符串常量。所以一般引号中套引号只能是'asdasd''yh''sadasdasd'这种方式


动态sql的局限性:
    A.不能在存储过程中返回结果集,只能放在临时表中
    B.有些sql语句动态执行会报错(复杂的sql)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sybase 存储 sql 优化 工具