Return SQL 服务器存储过程的 SELECT UNION 中的行数

Return a number of rows in a SELECT UNION of a SQL Server stored procedure

我有以下存储过程 returns 大量行。我想将行数限制为 50。如何在 SQL 服务器数据库的 UNION SELECT 查询中做到这一点?

CREATE PROCEDURE [dbo].[SD_photos]
    (@IDuser NVARCHAR(50))
AS
BEGIN
    SET NOCOUNT ON;

    SELECT 
        photoFileName 
    FROM 
        photos 
    WHERE 
        IDuser = @IDuser

    UNION ALL 

    SELECT 
        photoFileName 
    FROM 
        photos2 
    WHERE 
        IDuser = @IDuser 
END

这似乎是 MS SQL 服务器,所以你可以使用 TOP 语法:

SELECT TOP 50 *
FROM
 (
   SELECT photoFileName FROM photos WHERE IDuser = @IDuser
   UNION ALL 
   SELECT photoFileName FROM photos2 WHERE IDuser = @IDuser
 ) dt