CREATE PROCEDURE [dbo].[A_P_GetParentIds]
(
@IdValue NVARCHAR(36) ,-- 子节点值
@tableName NVARCHAR(MAX) ,-- 表名
@ParentIdColumnName NVARCHAR(MAX) ,-- 父节点列名
@ChildIdColumnName NVARCHAR(MAX)-- 子节点列名
)
AS
DECLARE @sqlTemp NVARCHAR(MAX); --查询sql
SET @sqlTemp = " with cte_root as
(
select " + @ParentIdColumnName + " from " + @tableName + " where "
+ @ChildIdColumnName + " = """ + @IdValue + """ union all
select a." + @ParentIdColumnName + " from " + @tableName
+ " a inner join cte_root b on a." + @ChildIdColumnName + "=b."
+ @ParentIdColumnName + " ) " + CHAR(10) + "select * from cte_root ";
------返回查询成果-----
EXEC sp_executesql @sqlTemp;
GOCREATE PROCEDURE [dbo].[A_P_GetParentIds]
(