none
做了一个删除历史数据表的存储过程,在另外一个数据库中调用这个存储过程,但是一直没有反应,咋回事? RRS feed

  • 问题

  • 删除数据的存储过程比较简单,处理逻辑是这样的:

    首先print开始日期、查找符合条件的表,print这些表,然后用动态语句删除这些表,删除后print“删除了多少表正在压缩数据库”,之后用shrinkfile做数据库压缩。直接调用这个数据库的存储过程没问题,但是在另外一个数据库EXEX A.DBO.PRO_DELETETABLE DATE1,DATE2,只打印了开始日期就没有反映了,等好久也没反应,只有取消存储过程执行时才print那些提示信息。删除表的存储过程没有使用事务。

    数据库为SQL2008+SP4.

    想不明白为什么会这样,请大侠指教!谢谢!

    2018年3月2日 1:04

答案

全部回复

  • 动态语句没带库名?

    想不想时已是想,不如不想都不想。

    2018年3月2日 1:58
    版主
  • 使用 raiserror('要输出的消息',10, 1) with nowait; 代替 print print 输出的消息是允许延迟的
    • 已标记为答案 Tim-2009 2018年3月8日 9:27
    2018年3月2日 2:17
  • 动态语句没带库名?

    想不想时已是想,不如不想都不想。

    动态语句没带库名,也不需要吧,因为是在本库执行的
    2018年3月2日 2:37
  • 使用 raiserror('要输出的消息',10, 1) with nowait; 代替 print print 输出的消息是允许延迟的

    没搞明白这个代替的作用是什么?谢谢
    2018年3月2日 2:39
  • 动态语句没带库名?


    想不想时已是想,不如不想都不想。

    动态语句没带库名,也不需要吧,因为是在本库执行的
    你不是在另外一个数据库执行的吗?

    想不想时已是想,不如不想都不想。


    2018年3月2日 3:02
    版主
  • 动态语句没带库名?


    想不想时已是想,不如不想都不想。

    动态语句没带库名,也不需要吧,因为是在本库执行的

    你不是在另外一个数据库执行的吗?

    想不想时已是想,不如不想都不想。



    在另外一个库执行时调用存储过程时加了数据库的名字
    2018年3月8日 9:27