我的存储过程中有一个参数,它指定要选择的行数。(可能的值:0-100。0 表示选择所有行)
例如@Rows = 5;
然后我可以这样做:
Insert into @MyTableVar
Select Top(@Rows) *
from myTable
现在,正如我之前所说,如果提供 0,我需要返回所有行。
这是我需要的伪代码:
if (@Rows=0) then select * else select top(@Rows) *
我发现有SET ROWCOUNT接受 0 以返回所有行,但我需要插入到不支持的表变量中ROWCOUNT
。
没有动态sql是否可以实现这一点?
(我知道我可以编写一个简单的 if else 语句和重复查询,但是我有非常复杂的查询并且它们有很多,我只是想避免代码重复)