Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将Access更新查询移动到SQL server_Sql Server_Azure_Sql Update - Fatal编程技术网

Sql server 将Access更新查询移动到SQL server

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

我们正在将Access数据库迁移到Azure,尽管尝试了几次语法更改和删除空间,但一次更新查询仍无法工作

以下是Access中查询的设计视图:

以下是Access中更新查询的SQL表达式:

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,谢谢我已经从更新行中删除了它,现在非常感谢您的评论!