访问动态数量的SQL视图

本文关键字:SQL 视图 动态 访问 | 更新日期: 2023-09-27 18:09:05

我相信这是一个难题!

我有两个数据库。DestinySource

Destiny中,我有一个表,其中包含视图名称的列表。

:

GasPriceSourceID    Name
1   ICIS Heren TTF Bid
2   ICIS Heren TTF Offer
3   ICIS Heren TTF Midspread
4   NPG Spot
8   AEQ SYS Sell
9   AEQ SYS Buy
10  ICIS Heren Gaspool Midspread

因此,首先我将调用数据库:Source上的视图:ICIS Heren TTF Bid然后是ICIS Heren TTF Offer,等等。

这将在c#控制台应用程序中完成。

通常我会使用ADO。NET实体数据模型。但是这会创建一个数据库的静态模型——但是视图每天都会被添加和删除。

所有的视图返回3个东西:ID, DateValue

我需要将这些价格移动到数据库中的一个表:Destiny

简而言之。命运号有一份价格来源清单。每个来源都有很多价格,这些价格将被放在Destiny的表格中。

访问动态数量的SQL视图

由于你没有提供足够的细节,只是一些一般的指针:

  • 在应用程序中"手动"构建SQL字符串
    不推荐且容易出现问题(安全,性能…)

  • 构建一个存储过程,该存储过程反过来构建和执行SQL SELECT并返回一个CURSOR
    可以更安全一点(特别是可以避免SQL注入),因为存储过程会先检查视图是否存在…

顺便说一句:当你访问这些视图时,你到底在做什么?

EDIT - after more information from OP:

我怀疑你的模型有点偏离…你所描述的问题很容易通过一个包含Source, ID, DateValue列的视图来解决。

这将使所有的动态SQL和由此产生的问题只是膨胀…因为这样你就可以使用"正常查询"与WHERE Source = 'ICIS Heren TTF Bid'为例…任何其他技术,如EF和/或LINQ等都是可用的,并且可以"开箱即用"…