动态SQL是执行此操作的唯一方法,但是如果需要,我会重新考虑应用程序的体系结构。SQL不太擅长“通用”代码。当它经过设计和编码以执行单个任务时,它的效果最佳。
即使选择语句看起来相同,从TableA中进行选择也与从TableB中进行选择不同。可能有不同的索引,不同的表大小,数据分布等。
您可以生成自己的存储过程,这是一种常见的方法。有一个代码生成器,可以为所需的表创建各种选择存储过程。每个表都有其自己的SP,然后可以将其链接到您的应用程序中。
我已经用T-SQL编写了这类生成器,但是您可以使用大多数编程语言轻松地做到这一点。这是非常基本的东西。
自从Scott E提出ORM以来,又增加了一件事…您还应该能够将这些存储过程与最复杂的ORM一起使用。