2016-08-24 9 views
1

AccessデータベースをAzureに移行していますが、構文の変更やスペースの削除を複数試みても1つの更新クエリが機能しません。以下はSQLサーバーへのアクセス更新クエリの移動

Accessでクエリのデザインビューである: Query Design

次は、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 "*")); 

私はerror 102: Incorrect syntax near ','.

を受ける上

この機能クエリをAccessからSQLサーバーに移動するための助けを、あらかじめありがとう!

答えて

0

「KeywordRULES」を行1から削除してみてください。UPDATEステートメントは、一度に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 "")) ; 
+0

SQLOnly、私は更新ラインからあなたのコメントをいただきありがとうございます感謝しました! –

0

SQL Update構文はAccessとは少し異なり、各更新ステートメントは1つのテーブルに影響するはずです。しかし、あなたがしようとしていることに応じて、他のテーブルを結合や他の方法で参照することはできます。

したがって、KeywordRulesはクエリで暗黙的に結合されています。したがって、KeywordRulesテーブルの情報に基づいてSPEND_steveテーブルを更新することをお勧めします。これは、キーワードルールへの参加によって実行できます。あなたはそれがnullになることができれば、同様AND IS Not NULLをチェックしたいかもしれませんが

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]; 

また、あなたは、パフォーマンスの向上をyeildこと= ""からlike ""を変更する必要があります。

+0

スペンスありがとうございました*非常に*多く!私はより良い方向を指摘していますが、文法を正しく理解するためにSQLでもっと時間を費やす必要がありますが、すぐに実行することを希望します。 –

+0

あなたはここに新しいです。答えの小さな矢印を押して、好きなことを言って、答えが問題を解決した場合はチックをクリックする必要があります。 – Spence