是否可以执行存储在列中的SQL?

时间:2017-05-10 10:58:58

标签: sql-server

正如标题所说,是否可以在SQL列中执行某些SQL?

我有一个包含大量任意十进制值的大型记录集,需要针对少量计算运行,这些计算在另一个表中存储为SQL。

例如,我有3000行,其中值的范围是10到100.假设每组1000分别是Kelvin,Celsius和Fahrenheit。相应的内联SQL表包含将它们全部转换为其他内容的公式。

是否可以针对动态结果集中的每个值运行此动态SQL?

我知道我可以通过CURSOR或类似的循环来做到这一点,但这会带来相当大的性能。

有没有办法在不产生太多性能问题的情况下做到这一点?

1 个答案:

答案 0 :(得分:1)

我不认为这是可能的。你可以通过使用动态sql来解决这个问题。没有TSQL或编译的查询类型可以用来短路他们的SQL编译过程的一部分。如果有的话,你必须保持某种架构绑定才能获得任何好处。

除非您可以改变其工作方式,否则我只能建议您尽量减少必须执行"解释过程的行数#34;根据。首先进行所有独立过滤。

现在你已经扩展了你的问题......

我建议您编写一些代码来构造一个语句,该语句包含您要执行的所有内联SQL操作,并以十进制值表为目标。

这样,您可以将操作作为基于集合的操作执行,而不是某种RBAR方法。