Error: Could not use view or function because of binding errors
Error: Could not use view or function because of binding errors
我获得了对视图的只读访问权限,当我尝试查询视图时收到此错误消息。任何人都可以帮助我了解实际问题是什么以及如何解决它。
仅供参考.. 这是我第一次查看此 table 。
这是错误消息。
Msg 207, Level 16, State 1, Line 1
Invalid column name 'ProductCategoryL2Name'.
Could not use view or function 'DB.Product' because of binding errors.
听起来像是创建了视图,然后更改了其中一个基础表。即,ProductCategoryL2Name 不再存在或已重命名。您可以尝试使用此方法来获取视图的定义,但 sys 表可能会被锁定。最好的办法是与拥有数据库的人交谈并要求他们修复它(这在大型组织或咨询演出中可能是一个相当大的兔子洞)。
SELECT sm.definition
FROM [YourDB].sys.sql_modules AS sm
JOIN [YourDB].sys.objects AS o
ON sm.object_id = o.object_id
WHERE sm.object_id = OBJECT_ID('YourDB.dbo.ViewName')
在向我们的系统部署更改时,收到此错误消息的情况并不少见由于绑定错误无法使用视图或函数。
发生这种情况是因为视图可能会因为视图所依赖的基础对象的更改而变得过时。
您可以使用 sp_refreshview 进行更正或更好的预防 - 如果您每次更改视图或功能时都执行 sp_refreshview @viewname='the_view_I_have_just_changed'
。
示例:
use my_database
exec sp_refreshview @viewname='dbo.vw_select_applicant'
exec sp_refreshview @viewname='dbo.vw_search'
execute as login='cola'
--to check the permissions
select top 10 * from dbo.vw_select_applicant
select top 10 * from dbo.vw_search
要使用 SSMS 工具更正错误的列名称,请右键单击“视图”文件夹中有问题的 table,然后单击“设计”并从那里更正它,确保在单击时保存关闭。
我获得了对视图的只读访问权限,当我尝试查询视图时收到此错误消息。任何人都可以帮助我了解实际问题是什么以及如何解决它。 仅供参考.. 这是我第一次查看此 table 。 这是错误消息。
Msg 207, Level 16, State 1, Line 1
Invalid column name 'ProductCategoryL2Name'.
Could not use view or function 'DB.Product' because of binding errors.
听起来像是创建了视图,然后更改了其中一个基础表。即,ProductCategoryL2Name 不再存在或已重命名。您可以尝试使用此方法来获取视图的定义,但 sys 表可能会被锁定。最好的办法是与拥有数据库的人交谈并要求他们修复它(这在大型组织或咨询演出中可能是一个相当大的兔子洞)。
SELECT sm.definition
FROM [YourDB].sys.sql_modules AS sm
JOIN [YourDB].sys.objects AS o
ON sm.object_id = o.object_id
WHERE sm.object_id = OBJECT_ID('YourDB.dbo.ViewName')
在向我们的系统部署更改时,收到此错误消息的情况并不少见由于绑定错误无法使用视图或函数。
发生这种情况是因为视图可能会因为视图所依赖的基础对象的更改而变得过时。
您可以使用 sp_refreshview 进行更正或更好的预防 - 如果您每次更改视图或功能时都执行 sp_refreshview @viewname='the_view_I_have_just_changed'
。
示例:
use my_database
exec sp_refreshview @viewname='dbo.vw_select_applicant'
exec sp_refreshview @viewname='dbo.vw_search'
execute as login='cola'
--to check the permissions
select top 10 * from dbo.vw_select_applicant
select top 10 * from dbo.vw_search
要使用 SSMS 工具更正错误的列名称,请右键单击“视图”文件夹中有问题的 table,然后单击“设计”并从那里更正它,确保在单击时保存关闭。