SELECT语句调用标量函数scrubNetWt时遇多部分标识符绑定错误
解决自定义标量函数调用时的“多部分标识符无法绑定”错误
这个报错完全是因为你调用标量函数的语法写错啦!咱们来拆解问题并修正:
错误根源
你在SELECT语句里的函数调用写法是:
[TFP].[dbo].[scrubNetWt(proform_net_wt)]
SQL Server会把这个当成一个多部分标识符(类似表名.列名的格式),而不是一个带参数的函数调用,自然就会抛出“多部分标识符无法绑定”的错误。
正确的函数调用语法
标量函数的调用格式应该是:[数据库名].[架构名].[函数名](参数),参数要放在函数名后面的独立括号里,而不是和函数名混在一起。
修正后的完整SELECT语句
USE [TFP] GO SELECT [pick_ticket_id] ,[pick_ticket_no] ,[proform_net_wt] ,[proform_cr_no] ,[TFP].[dbo].[scrubNetWt](proform_net_wt) AS net_wt FROM [TFP].[dbo].[pick_ticket_ud]
额外小提示
因为你已经用USE [TFP]指定了当前数据库,所以可以简化函数调用的写法,比如:
dbo.scrubNetWt(proform_net_wt) AS net_wt
甚至如果你的默认架构是dbo,直接写scrubNetWt(proform_net_wt)也能正常运行。
内容的提问来源于stack exchange,提问作者ed2_d2
相关产品推荐
相关产品推荐

