sql-server - SQL Server 不刷新函数
问题描述
我正在使用 SQL Server 2008 R2。我在Programmatibility > Functions > Table-valued Functions
.
第一个检索所有可用列和记录的集合。
第二个使用 Id 检查过滤掉第一个。
假设我有一张Customers
桌子。
第一个函数如下所示:
ALTER FUNCTION [dbo].[fnGetCustomers]()
RETURNS TABLE
AS
RETURN
SELECT
C.CustomerId AS Id,
C.CustomerName AS Name
FROM
Customers AS C
我这样称呼它SELECT * FROM fnGetCustomers()
。
第二个看起来像这样:
ALTER FUNCTION [dbo].[fnGetCustomerById]
(@CustomerId AS INT)
RETURNS TABLE
AS
RETURN
SELECT *
FROM fnGetCustomers()
WHERE (Id = @CustomerId)
我这样称呼它SELECT * FROM fnGetCustomerById(1)
。
我的问题是当我在我的Customers
表格方案中添加一个新列时。
首先,我fnGetCustomers
像这样编辑以包含新列。
ALTER FUNCTION [dbo].[fnGetCustomers]()
RETURNS TABLE
AS
RETURN
SELECT
C.CustomerId AS Id,
C.CustomerName AS Name,
C.CustomerPhone AS Phone
FROM
Customers AS C
fnGetCustomers
修改后工作正常。fnGetCustomerById
尽管依赖于该特定功能的所有其他功能(例如)都错过了新列。尽管*
在选择查询中使用。
我可以通过Right-Click on function > Modify > Execute!
每个功能解决问题。
我猜有些东西在内部运行并刷新它们。
我的数据库使用了大量依赖于这个特定基本函数的函数,因此几乎不可能找到并“修改 > 执行”所有这些函数。
可以做些什么来使数据库方案自动更新/刷新自己?
解决方案
推荐阅读
- javascript - 画布中的元素消失
- google-api - 我想根据邮政编码和国家代码查找城市、州信息
- amazon-web-services - 运行 AWS 命令时不打印错误
- java - Splash-Screen 在 IDE 中工作,但不能作为 .jar - ANT 有问题吗?
- r - 如何在r中保持具有相同符号的值
- redis - Redis georadius函数可以查询hash数据类型吗
- java - 重定向用户和 POST 参数
- python - 在函数中创建的变量是否具有全局范围?
- javascript - 如何重置每个容器元素的自动编号标题的计数?
- javascript - 中止包含 setInterval 和事件调用的异步函数