1
4
这实际上是个坏主意。SQL不像是您运行的工厂程序语言。SQL“compilation”绑定到物理访问路径计划,这意味着语句被编译成“open rowset with id 1234,seek a record and retrieve its content”计划,并且“1234”是在 汇编 由优化器进行批处理。这意味着,在您计划的过程中,将公共代码移动到过程中所带来的伤害往往大于它所带来的好处。该过程不能绑定到“通用”访问路径,它需要知道它应该查找的用于选择和更新等的实际表和对象。您要么最终在过程中执行动态SQL,要么只移动过程的非数据绑定、通用部分(如计算),这些部分会创建非常复杂的代码,同时还会损害性能 递减 程序可读性。 更明智的做法是使用模板,并通过各种代码生成技术(如XML和XSLT)从这些模板生成触发器。 |
2
0
我怀疑元数据/模式
如果您是动态生成触发器和视图的代码,我会说这可能没有什么区别。毕竟,所有触发器和视图都是代码生成的,并且可以在系统获得新功能或核心SP得到改进时重新生成。 只有当触发器和视图是自定义的并且从未重新生成时,共享核心SP才有好处,可以修改和升级核心SP,而不是重新生成视图和触发器。 生成的代码具有可靠的执行计划和更好的绑定,可能会超过重新生成的开销。 |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |