2016-04-13 9 views
0

行が更新されると、Azure Mobile Servicesは__updatedAtフィールドを更新しません。これは自動的に起こるはずです。これを解決するために何かできることはありますか?それは前に自動的に働いていた、私は最近何が変わった可能性があるか分からない。__updatedAtが更新されていません:Azureモバイルサービス

私はAndroidで働いています。

答えて

2

データベースまたはクライアントアプリケーションでフィールドが更新されていませんか?それがデータベースの場合は、誰かがSQLトリガーを変更したことを意味します。これは、フィールドを変更するように設定するためです。

モバイルクライアントの場合、応答がサーバーから送信された後にのみ、__updatedAtがクライアントに送信されることに注意してください。したがって、オフライン同期を使用している場合は、いったんPushAsyncを実行することになります。オンラインテーブルを使用している場合は、UpdateAsyncの呼び出し後に変更されたオブジェクトに格納されます。

+0

ええ、それは実際のテーブルには更新が失敗している...これらのテーブルのストアドプロシージャを書いている男がいる、私は彼と確認します – Merk

+0

以下のエリックの答えをチェックしてください、それは私の方法よりも完全です! –

2

モバイルサービスAzureポータルを使用してテーブルを作成すると、行が作成または更新されるたびに__updatedAt列を更新するトリガがテーブルに作成されます。トリガーのDDLは次のようになります。

CREATE TRIGGER [(schema)].[TR_(table)_InsertUpdateDelete] ON [(schema)].[(table)] 
WITH EXECUTE AS CALLER 
AFTER INSERT, UPDATE, DELETE 
AS 
    BEGIN 
     SET NOCOUNT ON; 
     IF TRIGGER_NESTLEVEL() > 3 RETURN; 

     UPDATE [(schema)].[(table)] SET [(schema)].[(table)].[__updatedAt] = CONVERT (DATETIMEOFFSET(3), SYSUTCDATETIME()) 
     FROM INSERTED 
     WHERE INSERTED.id = [(schema)].[(table)].[id] 
    END 

上記はモバイルサービス用です。新しいMobile Apps Easy Tablesはわずかに異なります。カラムの名前は__のないupdatedAtで、(3)ではなくDATETIMEOFFSET(9)です。

関連する問題