【发布时间】:2011-02-14 00:52:32
【问题描述】:
我们有一个返回日期时间的标量函数。它执行几个快速表选择以获取其返回值。这个函数已经在整个数据库中使用 - 在默认约束、存储过程等中。我想更改函数的实现(以删除表命中并提高效率)但显然我不能这样做它被数据库中的其他对象引用。
我真的需要更新或删除数据库中引用它的每个对象,更新函数,然后更新或重新创建所有这些对象以恢复对函数的引用吗?
该函数被少数视图、触发器、几个函数以及大量默认约束和存储过程引用。
感谢您提供的任何见解。
我尝试更改或删除函数时遇到的错误是:
无法 [ALTER|DROP FUNCTION] 'dbo.GetClientCurrentTime' 因为它被对象 'DF_tbl_PatientOrder_Note_RecordCreated' 引用。
【问题讨论】:
-
如果您在派生列中使用它,您将需要暂时删除列。存储过程中的使用不需要修改。不确定默认约束的用法。
-
当它被数据库中的其他对象引用时,我显然不能这样做 - 你遇到了什么错误,什么时候?
标签: sql-server tsql user-defined-functions