今天写了个函数,把表名作为参数,然后通过Execute执行SQL来返回值。因为表名是按照日期格式定义的。
SQL如下图:
Create Function dbo.F_GetDepartFullName(
@DepartID varchar(100),
@DepTableName varchar(100)
) returns nvarchar(max)
as
begin
declare @sql nvarchar(max)
set @sql=''
declare @fullname nvarchar(max)
set @fullname=''
set @sql =' with T as ( '
set @sql+=Char(10)+Char(13)
set @sql+=' select id,name,parentid from '+@DepTableName+' with(nolock) where id='+@DepartID
set @sql+=Char(10)+Char(13)
set @sql+=' union all '
set @sql+=Char(10)+Char(13)
set @sql+=' select dep.id,dep.name,dep.parentid from '+@DepTableName+&