编写在表模式之间切换的存储过程/函数的最佳方法是什么?

Eli*_*yal 0 sql sql-server

我们在数据库中有3个表:

  • [未批准] [数据]
  • [批准] [数据]
  • [历史] [数据]

我们目前有3个存储过程,每个存储过程运行相同的select查询以从表中获取数据,但唯一的区别是模式.

这样做的最佳方式是在一个存储过程中说(最好没有动态SQL)

gbn*_*gbn 5

没有最佳方式.

您可以使用IF .. ELSE IF构造来决定选择哪一个.

但它们是3个不同的对象,所以这是预期的.我建议你不要正确使用模式......

来自dba.se:

  • +1.最好的方法是解雇这个荒谬的反模式架构使用并重建它以便正确完成. (4认同)