A single SELECT statement packaged as a T-SQL function that returns rows. Fabric Warehouse and SQL analytics endpoints use one as the filter predicate when CREATE SECURITY POLICY sets up row-level security on a table.
Also called inline TVF.
Read more: Microsoft Learn
In the Ultra Transcenders books
Each book explains Inline table-valued function in context, with comparison tables and the common traps.
Terms in this definition
- SELECT
A DML command in SQL used to retrieve rows from one table or several.
- T-SQL
The dialect of SQL that Microsoft uses for Azure SQL and SQL Server. Azure Monitor logs are queried with KQL instead.
- Fabric Warehouse
A relational data warehouse in the classic style, offered as a Fabric item, that supports T-SQL fully, transactions included.
- Serverless
Compute tier for single Azure SQL databases that scales automatically, pauses when idle and charges by the second. It is offered in General Purpose and Hyperscale, not Business Critical, and reserved capacity does not apply.
- Filter predicate
An inline table-valued function used for row-level security; once a security policy binds it to a table, users simply don't see rows they aren't entitled to when they SELECT, UPDATE or DELETE. Block predicates are unsupported in Fabric warehouses, so this is the only type available.
- Security policy
Implements row-level security for Fabric warehouses or SQL analytics endpoints by attaching an inline table-valued function, acting as filter predicate, onto a table. Excluded rows vanish quietly from reads, updates and deletes.
- RLS
Row-level security: filtering the data each person can see down to permitted rows. Power BI models apply it through DAX rules on roles, which bind just Viewers and anyone holding Read or Build; Fabric Warehouse instead uses a T-SQL policy that calls a predicate function.
- Event
Table in Log Analytics where entries from Windows event logs are kept.
Related terms
- MSTVF
A multi-statement table-valued function, which builds up and returns a table variable using several statements. The optimiser can't see how many rows it returns, unlike an inline TVF, a gap that interleaved execution helps to close.
- Predicate function
The logic behind row-level security. Written as an inline TVF, it yields a row only when the user should see or change the data; tables are bound to it through a security policy, which applies it either to filter rows out or to block writes.