我正在考虑即时创建存储过程。即时创建存储过程。有什么风险/问题?
即运行CREATE PROCEDURE ...当(web)应用程序正在运行时。
它可能导致什么风险或问题?
- 我知道数据库帐户需要额外的权限。
- 它不会每天都发生。只是不时。
- 我使用的是sql server,对mysql和postgres也很感兴趣。
UPDATE1:
感谢您的意见,我正在考虑创建存储过程的新版本和切换,而不是改变SP。例如:SP1 - > SP2 - > SP3
UPDATE2:
的原因:由于自定义字段的
我的架构更改(未知数和列型) 我试图动态SQL和sp_executesql的第一。当然,它的作品。动态sql的工作原理为1,2,3简单更新,插入。
但它太难看了,很多工作,它不能很好地与存储过程混合,因为在存储过程中使用sql参数化的问题,并且编译时不知道参数的数量和类型(很长的故事)。
至少这个解决方案的基本情况并不复杂。 sp的逻辑不会改变。对于每个自定义字段,我必须为sp添加一个新参数并添加一列以更新,插入等。
我还考虑过使存储过程参数动态化,如接受任何数量和类型的参数但无法找到的sp_executesql一种方式。
如果你不介意我问,你能详细说明一些你考虑这个选项的“很好的理由”吗? – ninesided 2008-10-23 07:25:24
由于自定义字段,模式正在更改。我可以去动态SQL,但缺点是性能问题,并使其他事情变得困难。动态sql在简单的情况下运行良好,但对于一些复杂的存储过程并不适用。有很多细节... – user30683 2008-10-23 07:33:50