- Nope. The multi-statement UDF is effectively a table variable. It lives within the context of the query it runs within. The in-line table function is just a parameterized view, a query. It doesn't materialize in a meaningful way at all. Look to the execution plans to see how these are resolved. Use what's called the "estimated plan" to see the plan for the multi-statement UDF as well as how it gets resolved within the query that calls it.
- Local, very local. Not even to the batch. Just to the statement. Unlike a real table variable or temporary table, you can't even use these in multiple statements. Each statement they're used in is a new call to the function.
- You can't.
By the way, Multi-Statement User-Defined Table-Valued Functions have a nickname: Pure Evil.
I would avoid them like the plague. There is almost literally nothing that can be done with them that can't be done with other objects within SQL Server and with superior performance by orders of magnitude.