创建包含两个查询的存储过程的语法是什么,如果第一个查询返回一组记录,则不运行第二个查询。我猜测必须对计数进行一些测试,这样如果第一个查询返回一个集合,第二个将不会运行。
我想这样做:
我总是喜欢添加是否有“正确”的方法来实现这一点,或者事实上“应该”构建这种类型的存储过程还是通常不赞成?
由于
答案 0 :(得分:3)
您可以使用@@ROWCOUNT检查并查看受上一个查询影响的行数。
DoYourQuery()
IF @@ROWCOUNT = 0
BEGIN
YourAlternateQuery()
END
至于你的问题是你应该做的事情,我认为这将是个案。它类似于将控制流逻辑放在任何其他程序中,有时IF
语句是实现目标的正确工具,但不应在任何情况下使用它们。