dbo.QBM_FTIndexesForColumns
SQL_TABLE_VALUED_FUNCTION
Created 2026-04-14T23:14:10.207 · modified 2026-04-14T23:14:10.207 · source: live DB sys.objects/sys.sql_expression_dependencies.
Parameters
| Name | Type | Output |
|---|---|---|
@TableName | varchar | no |
@Columns | varchar | no |
@Includes | varchar | no |
Referenced objects
| Schema | Object | Column/minor | Class |
|---|---|---|---|
| QBM_YParameterList | TYPE | ||
| dbo | QBM_FCVIntToString | OBJECT_OR_COLUMN | |
| dbo | QBM_FCVStringPadLeft | OBJECT_OR_COLUMN | |
| dbo | QBM_FCVStringToList | OBJECT_OR_COLUMN |
Source excerpt
First extracted SQL definition lines from the exported source. Use the full source page for complete context.
1create function dbo.QBM_FTIndexesForColumns ( @TableName varchar(30) , @Columns varchar(max) , @Includes varchar(max) ) returns @erg table (IndexName 2 varchar(256) collate database_default , IsPK bit , IsUnique bit , HasMoreColumns bit , HasAllIncludes bit , HasMoreIncludes bit ) as begin declare @ColumnsList 3 QBM_YParameterList declare @IncludesList QBM_YParameterList declare @CountColumns int declare @CountIncludes int insert into @ColumnsList(Parameter1 4, Parameter2) select trim(l.ParameterValue), dbo.QBM_FCVStringPadLeft( dbo.QBM_FCVIntToString(l.OrderNumber), 3, '0') from dbo.QBM_FCVStringToList(@columns 5, ',', 1, 0) l select @CountColumns = @@ROWCOUNT update @ColumnsList set Parameter3 = 'desc' ,Parameter1 = trim(left(Parameter1, patindex('% desc%', Parameter1 6))) from @ColumnsList l where l.Parameter1 like '% desc%' insert into @IncludesList(Parameter1) select l.ParameterValue from dbo.QBM_FCVStringToList(@Includes 7, ',', 1, 0) l select @CountIncludes = @@ROWCOUNT insert into @erg(IndexName, IsPK, IsUnique, HasMoreColumns, HasAllIncludes, HasMoreIncludes) select 8 ali.indexname , ali.IsPK, ali.IsUnique , mai.HasMoreColumns , case when @CountIncludes > 0 then sign(len(isnull(inx.indexname, ''))) else 1 end as HasAllIncludes 9 , isnull(inx.HasMoreIncludes, 0) as HasMoreIncludes from ( select i.name as indexname, i.is_primary_key as IsPK, i.is_unique as IsUnique from sys.objects 10 t with (readpast) join sys.indexes i with (readpast) on i.object_id = t.object_id where t.name = @TableName and i.is_hypothetical = 0 and i.type not 11 in (3,4,5,6) ) as ali join ( select ec.indexname , sign(count(*) - @CountColumns) as HasMoreColumns from (select i.name as indexname, concat(dbo.QBM_FCVStringPadLeft 12( dbo.QBM_FCVIntToString( ic.key_ordinal), 3, '0') , c.name, case ic.is_descending_key when 1 then 'desc' else '' end ) as columnname from sys.index_columns 13 ic with (readpast) join sys.objects t with (readpast) on t.object_id = ic.object_id and t.name = @TableName and ic.is_included_column = 0 join sys.indexes 14 i with (readpast) on ic.index_id = i.index_id and i.object_id = t.object_id and i.is_hypothetical = 0 and i.type not in (3,4,5,6) join sys.columns 15c with (readpast) on t.object_id = c.Object_id and c.column_id = ic.column_id ) ec left outer join @ColumnsList cl on concat(cl.Parameter2 , cl.Parameter1 16, cl.Parameter3 ) = ec.columnname group by ec.indexname having count(distinct cl.Parameter1) = @CountColumns ) as mai on ali.indexname = mai.indexname 17 left outer join ( select ei.indexname , sign(count(*) - @CountIncludes) as HasMoreIncludes from (select i.name as indexname, c.name as columnname from 18 sys.index_columns ic with (readpast) join sys.objects t with (readpast) on t.object_id = ic.object_id and t.name = @TableName and ic.is_included_column 19 = 1 join sys.indexes i with (readpast) on ic.index_id = i.index_id and i.object_id = t.object_id and i.is_hypothetical = 0 and i.type not in (3,4,5 20,6) join sys.columns c with (readpast) on t.object_id = c.Object_id and c.column_id = ic.column_id ) as ei left outer join @IncludesList il on il.Parameter1 21 = ei.columnname group by ei.indexname having count(distinct il.Parameter1) >= @CountIncludes ) as inx on mai.indexname = inx.indexname return end 22
Module relation graph
Loading module relation graph…
Source-derived context
Generated from exported SQL module definitions plus read-only sandbox sys.objects/sys.parameters/sys.sql_expression_dependencies metadata. This is factual source evidence, not a semantic guess.
provenance: SQL definition export provenance: sandbox DB metadata modified: 2026-04-14T23:14:10.207
None extracted.
Summary: writes INSERT into; reads/joins QBM_FCVStringToList, sys
Declared parameters
| Parameter | Type | Direction |
|---|---|---|
@TableName | varchar(30) | input |
@Columns | varchar | input |
@Includes | varchar | input |
DML targets
INSERT intoCalled routines
None extracted.
Read/join references
SQL dependency metadata
Config/session
Config: None extracted.
Session: None extracted.
DBQueue/tasks
None extracted.Temp tables / referenced variables
Temp: None extracted.
Variables: @TableName @Columns @Includes @erg @ColumnsList @IncludesList @CountColumns @CountIncludes @columns @ROWCOUNT
Referenced by / reverse dependencies
Generated from live DB metadata, FK rows, and exported SQL dependency/source extraction. This is factual linkage evidence, not inferred behavior.
| Referencing object | Relation | Evidence |
|---|---|---|
| dbo.QBM_PIndexCreate | SQL expression dependency | dbo · OBJECT_OR_COLUMN |
| dbo.QBM_PIndexCreate | source text reference | has TRY/CATCH error handling |