【发布时间】:2010-03-24 05:00:27
【问题描述】:
我们能否在存储过程中创建用户定义函数,然后在存储过程结束时我们需要删除该自定义用户定义函数。
【问题讨论】:
标签: sql sql-server-2005
我们能否在存储过程中创建用户定义函数,然后在存储过程结束时我们需要删除该自定义用户定义函数。
【问题讨论】:
标签: sql sql-server-2005
你可以,但它可能会变得混乱。
看看sp_executesql。这将允许您运行任意 SQL,包括 DDL。以这种方式创建和使用 UDF 似乎有点危险——您需要确保与竞争线程没有任何名称冲突,并且无法获得任何类型的查询优化。
我会仔细检查您的设计,确保没有其他解决方案!
【讨论】:
动态 SQL 是唯一的方法。
ALTER PROC ...
AS
...
EXEC ('CREATE FUNCTION tempFunc...')
...
EXEC ('DROP FUNCTION tempFunc')
...
GO
但是:
那么……你为什么要这样做?
【讨论】: