gpt4 book ai didi

sql-server - SQL Server 2005 - 无法绑定(bind)多部分标识符

转载 作者:行者123 更新时间:2023-12-04 05:15:53 25 4
gpt4 key购买 nike

这段代码:

USE [db]
GO
/****** Object: UserDefinedFunction [dbo].[GetFieldPickerReports] Script Date: 01/11/2013 19:12:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER FUNCTION [dbo].[GetFieldPickerReports] (@CustomerName varchar(100))
RETURNS TABLE
AS
RETURN SELECT [fpr].[ID], [fpr].[Name], [fpr].[Global], [fpr].[FPRCategoryID]
FROM FieldPickerReport fpr, dbo.GetProductKeyIdByCustomer(@CustomerName) pk
LEFT JOIN [FPRCategory] fprcat on ([fpr].[FPRCategoryID]=[fprcat].[ID])
WHERE [Global]=1 OR ProductKeyID=pk.id

产生错误:

The multi-part identifier "fpr.FPRCategoryID" could not be bound.



此查询在没有 Left Join 的情况下有效(我目前需要添加)或删除 dbo.GetProductKeyIdByCustomer()Where条款。

这是 dbo.GetProductKeyIdByCustomer() 的代码
USE [db]
GO
/****** Object: UserDefinedFunction [dbo].[GetProductKeyIdByCustomer] Script Date: 01/11/2013 19:58:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER FUNCTION [dbo].[GetProductKeyIdByCustomer] (@CustomerName varchar(100))
RETURNS TABLE
AS
RETURN SELECT id
FROM ProductKey
WHERE [CustomerName]=@CustomerName AND Enabled=1

我的查询有什么问题?

最佳答案

首先,我认为这些 UDF 会更好地实现为 View 。

其次,您正在混合隐式和显式连接。使用所有显式连接应该可以解决您的问题:

SELECT 
[fpr].[ID],
[fpr].[Name],
[fpr].[Global],
[fpr].[FPRCategoryID]
FROM
FieldPickerReport fpr
JOIN dbo.GetProductKeyIdByCustomer(@CustomerName) pk
ON [Global] = 1 OR ProductKeyID = pk.id
LEFT JOIN FPRCategory fprcat
ON fpr.FPRCategoryID = fprcat.ID

关于sql-server - SQL Server 2005 - 无法绑定(bind)多部分标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14284025/

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