piz123 发表于 2009-10-28 00:11:28

sybase数据库存储过程编写的问题,急!

我想在sybase数据库的存储过程中删除一个表里面符合条件的前10条记录,但是不知道怎么写,大家赐教下。
1、一开始我是这么写的:
set rowcount 10
delete from CC_TELEBILL_COUNTTEMP where TB_CALLERID=@CALLER
ORDER BY TB_STARTTIME
报order错误,一哥们说不能这么写。

2、于是我改成了用top,但是仍然不行。可能sybase不支持top。
delete from CC_TELEBILL_COUNTTEMP where TB_CALLERID=@CALLERand TB_STARTTIME in (select top 10 TB_STARTTIME from CC_TELEBILL_COUNTTEMP order by TB_STARTTIME)

我没其他办法了,各位XDJM们有什么好办法啊,急!谢谢了!

ehxz 发表于 2009-10-28 08:42:32

升级到新版本就支持Top了,版本有些老了。

piz123 发表于 2009-10-28 09:06:41

我12.5.0.3版本的哦。而且数据库在线的,不能升级

lizhiyuan666 发表于 2009-10-29 14:26:40

可以通过一个临时表来实现:先将需求的前10条记录放入一个临时表,在delete的where子句中调用临时表即可
set rowcount 10
select TB_STARTTIME into #tmp from CC_TELEBILL_COUNTTEMP order by TB_STARTTIME
delete from CC_TELEBILL_COUNTTEMP where TB_CALLERID=@CALLERand TB_STARTTIME in (select TB_STARTTIME from #tmp order by TB_STARTTIME)

jiazhili 发表于 2009-10-31 14:02:05

O(∩_∩)O~我也正在学习呢啊
页: [1]
查看完整版本: sybase数据库存储过程编写的问题,急!

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com