我正在尝试使用函数更新表列。该函数的输入参数是我要更新的表中的数据字段。
假设我有两列(“国家”和“资本”)的表格。输入了“首都”,我正在使用一个函数,该函数通过首都名称返回县名作为输入参数。所以,我的更新代码是这样的:
UPDATE @TableName
SET Country=(SELECT Country FROM dbo.fn_GetCountryByCapital(Capital))
IntelliSence 没有产生错误,但在 F5 上按它说:
“大写”附近的语法不正确。
请注意,这只是一个示例(因为它可能看起来很傻)。我给它样本以描述我的问题。我的真实情况包括在更新语句中使用了几个函数。
预先感谢您的帮助。城郎
可能的解决方案:
我找到了其他方法来做到这一点。它看起来不太好,但它有效:
- 我在临时表中添加了索引以使用 while 语句
- 对于表中的每条记录(使用 while 语句),我使用临时变量来存储我需要的字段信息
- 然后我将此信息传递给我的函数以及我用来更新表格的结果
我的猜测是,围绕 select 语句和函数的括号“()”不允许函数使用表中的正确值。