我的程序连接到SQL Server。该程序有很多Select语句。如果程序执行
Select * from MyTable
我希望SQL服务器只返回前200行,而不是返回所有行。
仅在程序明确执行
时Select top all * from MyTable
然后SQL引擎返回所有行。
SQL Server中是否有选项可以执行此操作?如果没有,它如何实施?
答案 0 :(得分:0)
您可以使用以下内容:
DECLARE @topCount INT = 5;
SELECT TOP(@topCount) * FROM sys.objects;
现在使用 do-it-for-all-logic 。
SET @topCount=0; --or NULL, or -1 ...
SELECT TOP(CASE WHEN ISNULL(@topCount,0)<=0 THEN 999999999 ELSE @topCount END) * FROM sys.objects;
您必须知道,TOP
没有ORDER BY
会导致相当不可预测的结果。您的表的前5 哪些行?没有内在的秩序......
我很快。如果没有指定TOP
,您希望此行为为默认行为。对不起,这是不可能的。