Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Променете CTE SELECT на дефинирана от потребителя функция на таблична стойност

Премахнете първия ; и order by клауза.

Alter FUNCTION GetDescendentSteps 
(   
@StepId INT 
)
RETURNS TABLE 
AS
RETURN
    WITH cteRecursion
         AS (SELECT
                 StepId
                 ,1 AS Level
             FROM
                 Step
             WHERE
                 StepId = @StepId
             UNION ALL
             SELECT
                 t.StepId
                 ,c.Level + 1
             FROM
                 Step t
                 INNER JOIN cteRecursion c
                     ON t.ParentStepId = c.StepId
            )
    SELECT
        StepId,Level
    FROM
        cteRecursion



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Asp.Net 4.0 Съхраняване на сесия в SqlServer

  2. Как да симулирам UNPIVOT в Access?

  3. Намерете min и max за подмножества от последователни редове - пропуски и острови

  4. Възникна грешка на ниво транспорт при получаване на резултати от сървъра

  5. Преобразувайте „smalldatetime“ в „time“ в SQL Server (T-SQL примери)