Sql server 将Access更新查询移动到SQL server
我们正在将Access数据库迁移到Azure,尽管尝试了几次语法更改和删除空间,但一次更新查询仍无法工作 以下是Access中查询的设计视图: 以下是Access中更新查询的SQL表达式:Sql server 将Access更新查询移动到SQL server,sql-server,azure,sql-update,Sql Server,Azure,Sql Update,我们正在将Access数据库迁移到Azure,尽管尝试了几次语法更改和删除空间,但一次更新查询仍无法工作 以下是Access中查询的设计视图: 以下是Access中更新查询的SQL表达式: UPDATE SPEND_steve, KeywordRULES SET SPEND_steve.Category = [KeywordRULES].Category WHERE (((SPEND_steve.Category) Is Null) AND ((SPEND_steve.ItemDescrip
UPDATE SPEND_steve, KeywordRULES
SET SPEND_steve.Category = [KeywordRULES].Category
WHERE (((SPEND_steve.Category) Is Null) AND ((SPEND_steve.ItemDescription) Like "*"
And (SPEND_steve.ItemDescription)=[KeywordRULES].[ItemDescription]
And (SPEND_steve.ItemDescription) Like "*"));
通过以上操作,我收到了错误102:“,”附近的语法不正确。
提前感谢您为将此功能查询从Access移动到SQL server提供的任何帮助 尝试从第1行删除“、关键字规则”,一条语句一次只能更新一个表(或视图)
UPDATE SPEND_steve
SET SPEND_steve.Category =
[KeywordRULES].Category WHERE (((SPEND_steve.Category) Is Null) AND
((SPEND_steve.ItemDescription) Like "" And (SPEND_steve.ItemDescription)=
[KeywordRULES].[ItemDescription] And (SPEND_steve.ItemDescription) Like "")) ;
尝试从第1行删除“、关键字规则”,一条语句一次只能更新一个表(或视图)
UPDATE SPEND_steve
SET SPEND_steve.Category =
[KeywordRULES].Category WHERE (((SPEND_steve.Category) Is Null) AND
((SPEND_steve.ItemDescription) Like "" And (SPEND_steve.ItemDescription)=
[KeywordRULES].[ItemDescription] And (SPEND_steve.ItemDescription) Like "")) ;
SQL Update语法与Access略有不同,因为每个Update语句都应该影响一个表。但是,您可以通过联接或其他方式引用其他表,具体取决于您尝试执行的操作 因此关键字规则隐式地加入到查询中。因此,您的目的是根据关键字规则表中的信息更新SPEND_steve表。您可以通过加入关键字规则来实现这一点
Update SPEND_steve
Set SPEND_steve.Category = [KeywordRULES].Category WHERE
(((SPEND_steve.Category) Is Null) AND ((SPEND_steve.ItemDescription) Like ""
And (SPEND_steve.ItemDescription) Like ""))
JOIN KeywordRules on (SPEND_steve.ItemDescription)=[KeywordRULES].[ItemDescription];
此外,您还应该将
更改为=”
,这可能会提高性能,尽管您可能希望检查是否为空,如果它可能为空,也可能不为空。SQL Update语法与Access略有不同,因为每个Update语句都应该影响一个表。但是,您可以通过联接或其他方式引用其他表,具体取决于您尝试执行的操作
因此关键字规则隐式地加入到查询中。因此,您的目的是根据关键字规则表中的信息更新SPEND_steve表。您可以通过加入关键字规则来实现这一点
Update SPEND_steve
Set SPEND_steve.Category = [KeywordRULES].Category WHERE
(((SPEND_steve.Category) Is Null) AND ((SPEND_steve.ItemDescription) Like ""
And (SPEND_steve.ItemDescription) Like ""))
JOIN KeywordRules on (SPEND_steve.ItemDescription)=[KeywordRULES].[ItemDescription];
此外,您还应该将如“
更改为=”
,这可能会提高性能,尽管您可能需要检查是否为空,如果它可能为空,也不为空。斯彭斯非常感谢!你给我指出了一个更好的方向,我需要花更多的时间使用SQL来正确使用语法,但我希望它能很快运行起来。你是新来的。您需要按答案上的小箭头表示您喜欢它,如果答案解决了您的问题,请单击勾号。斯宾塞非常感谢您!你给我指出了一个更好的方向,我需要花更多的时间使用SQL来正确使用语法,但我希望它能很快运行起来。你是新来的。您需要按答案上的小箭头表示您喜欢它,如果答案解决了您的问题,请单击勾号。SQLOnly,谢谢。我已从更新行中删除了该选项,现在非常感谢您的评论!SQLOnly,谢谢我已经从更新行中删除了它,现在非常感谢您的评论!