在将多语句表值函数转换为内联表值函数时,是否存在任何可能的问题?



我们有很多多语句tvf,有时我们想将它们转换为内联tvf(通常出于性能原因)。

我们不能做一个简单的ALTER FUNCTION来做这个切换,因为SQL Server告诉我们不能在'db上执行ALTER。FOO"因为它是不兼容的对象类型",所以我们必须先删除该函数,然后重新创建它。

这对我们来说工作得很好,但是我们不确定为什么 SQL Server不自动执行drop/create。有没有什么特殊的问题是为了保护我们而我们却盲目地走入其中?

一些谷歌搜索显示人们得到错误信息,并被告知只需删除它并重新创建它,但我还没能首先找出错误信息的原因。

在sys中它们是两种不同的对象。对象因此不兼容。

实际上和

是一样的
CREATE TABLE dbo.foo (...)
然后

ALTER VIEW dbo.foo ...

视图和表可以以相同的方式使用,但它们并不相同。

对于这三种类型,应该有不同风格的CREATE FUNCTION…

最新更新