Sybase存储过程中的SELECT和TRUNCATE

时间:2014-09-25 19:17:24

标签: sql stored-procedures sybase

我试图从表中获取所有数据,然后使用存储过程清除所有数据。我尝试了以下方法:

ALTER PROCEDURE "RD1DTA"."my_procedure"()
BEGIN
    SELECT * FROM rd1dta.qrtsp
    TRUNCATE TABLE rd1dta.qrtsp
END

这只做SELECT,但它没有做TRUNCATE。如果我在SELECT之前执行TRUNCATE,那么它执行TRUNCATE但不执行SELECT。我怎么做到这两点呢?

我正在使用sybase执行此操作。

1 个答案:

答案 0 :(得分:1)

丹尼尔,

使用临时表:

ALTER PROCEDURE "RD1DTA"."my_procedure"()
BEGIN
    SELECT * INTO #XYZ FROM rd1dta.qrtsp
    TRUNCATE TABLE rd1dta.qrtsp
    SELECT * FROM #XYZ
END

希望有所帮助。

-Dave