在 SQL Server 2005 中,我有一个复杂的视图,需要在某些关系上指定附加条件。这些条件在创建视图时是未知的。这是一个大大简化的版本。
SELECT fields FROM table1
LEFT JOIN table2 ON ((table1.pid = table2.fid) AND (table2.condition1 = @runtimecondition));
LEFT JOIN table3 ON ....
LEFT JOIN table4 ON ....
LEFT JOIN table5 ON ....
由于第 3 方的限制,动态 SQL 直接访问表并进行连接对我来说不是一个选项(这是一个集成,他们希望为我的代码提供单点访问,最好是视图 - 而不是授予访问权限到各种表)。这可以通过视图来完成吗?我必须使用存储过程吗?这是一个可以通过表值函数解决的问题吗?