gpt4 book ai didi

sql-server - SQL71561 错误 - 不明确的引用

转载 作者:行者123 更新时间:2023-12-03 16:42:15 25 4
gpt4 key购买 nike

Error   431 SQL71561: 
Computed Column: [dbo].[ViewAlertFrequency].[BeginDate] contains an unresolved
reference to an object.
Either the object does not exist or the reference is ambiguous because it could
refer to any of the following objects:
[Lookup].[dbo].[AlertFrequency].[AlertFrequency]::[BeginDate]
or [Lookup].[dbo].[AlertFrequency].[BeginDate]

当前数据库是 Lookup,因此查找此对象应该没有任何问题。这是从现有 View 导入的。看来整个数据库是这样的。我不确定::语法是什么。

这是 View :
CREATE VIEW [dbo].[ViewAlertFrequency]

AS

--###
--ViewAlertFrequency
--###

--###
--used by: eobResolve
--###

SELECT DISTINCT TOP 100
AlertFrequency.[ID] AS [ID],
AlertFrequency.Code AS Code,
AlertFrequency.[Name] AS [Name],
AlertFrequency.[Description] AS [Description],
AlertFrequency.[Rank] AS [Rank],
AlertFrequency.BeginDate AS BeginDate,
AlertFrequency.EndDate AS EndDate

FROM
Lookup.dbo.AlertFrequency AS AlertFrequency

ORDER BY
AlertFrequency.[Rank] ASC


GO
GRANT SELECT
ON OBJECT::[dbo].[ViewAlertFrequency] TO [eobResolve]
AS [dbo];

最佳答案

您在“FROM”子句中使用了三部分命名约定。将“Lookup.dbo.AlertFrequency”更改为“dbo.AlertFrequency”,您的问题就会消失。我的结果喜忧参半。更改数据库选项之一似乎足以解决那些由 3 部分组成的名称,但随后我遇到了跨数据库引用(4 部分名称)的其他问题。我认为只需将 3 部分名称更改为 2 部分 [架构].[对象] 命名将是处理该问题的更简单方法。

GRANT 语句只是指定将权限授予对象而不是模式。我认为这不属于对象定义,但我们在部署后脚本中处理我们的权限,因为它们从一个环境到另一个环境略有不同。

关于sql-server - SQL71561 错误 - 不明确的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17375821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com