2016-02-10 22 views
1

我有这种情况,我需要对设计时不知道名称的表执行查询。动态选择表格(表格是可变的)

例如,我有这些表中:

Table_Items_1 
Table_Items_2 
Table_Items_3 
Table_Items_4 
Table_Items_5 

我需要根据多个“X”,其指表中的后缀来选择。 (表的数量是动态的,我不能这样做,否则)。

这可以使用动态SQL来完成。但是,我需要更通用一些,因为它会被其他几个函数/存储过程引用。

我在考虑一个表值函数,因为我需要对上述查询执行其他查询(即:内部连接,依赖于结果或字段的其他选择查询等),但是表值函数不接受调用存储过程或动态SQL。

P.S .:我不介意改变方法,TVF不是必须的,但我需要一些通用的,可以从其他存储过程/函数引用。

任何解决方案?

谢谢。

+1

对于动态表名,你只有一个选项,它是'dynamic sql',你不能在存储过程以外的任何东西中使用动态sql。 –

+0

取决于使用的dbms ...标签dbms产品! – jarlh

+0

闻起来像我的数据库设计不好。 –

回答

0

表名不提前知道它的动态,所以你需要动态的sql。

现在取决于在何处以及如何构建查询,您可以直接通过命令或使用存储过程。