2011-09-19 67 views
0

我相信这是一个艰难的!访问动态数量的SQL视图

我有2个数据库。 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 

所以首先我将调用查看:ICIS Heren TTF Bid在数据库上:Source 然后ICIS Heren TTF Offer等。

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

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

所有的观点返回3件事情:ID,Date,和Value

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

因此,在短期。命运有一个价格来源清单。每个来源都有很多价格,这些价格将被放入Destiny的表格中。

+1

动态sql。小心注射。 – Randy

回答

1

既然你不提供足够的细节只是一些普通的指针:在应用

  • 构建SQL字符串“手动”
    不建议容易出现问题(安全性,性能......)

  • 建立一个存储过程,而这又建立并执行SQL SELECT和返回游标
    可以多一点安全(特别是可避免SQL注入),因为存储过程会检查该视图的存在第一...

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

编辑 - 从OP的详细信息后:

我怀疑你的模型是有点过了......你描述会很容易被具有EXCATLY一个视图与列SourceID要解决什么, DateValue

这将使所有的动态SQL和由此产生的问题只是泡芙......因为那样你就可以使用“普通查询”,例如WHERE Source = 'ICIS Heren TTF Bid',例如......任何其他技术,如EF和/或LINQ等。将可用和“开箱即用”...

+0

增加了一些信息。随意要求更多。 – CasperT

+0

请看我上面的编辑... – Yahia

+0

啊,但我不控制在源数据库的意见。我只控制命运。另外,在未来,价格可能会落在不同的命运表上。因此,查看x,y,z进入命运表a。 x,z,g在命运等方面转到表b。 – CasperT