sql >> データベース >  >> RDS >> Sqlserver

SQL ServerはWebリクエストを送信できますか?

    それは可能ですが、現実の世界では、あなたが想像する素朴なアプローチよりも少し複雑です。主に、トリガーがHTTPリクエストを待機することは許容されません:

    • 1つは、トリガーが遠く離れたWWWサービスからの応答を待機しているリソース(主にロック)をブロックするため、アプリケーションは急停止するまでクロールします。
    • 第2に、より微妙ですがはるかに悪いのは、ロールバックが存在する場合の正確性の問題です。 HTTPリクエストに対して発行されたトランザクションがロールバックした場合、HTTPリクエストを「元に戻す」方法はありません。

    解決策は、キューを介してトリガーをHTTPリクエストから切り離すことです。トリガーはリクエストをローカルキューにエンキューしてコミットし、別の処理でこれらのリクエストをデキューしてHTTPリクエストを発行します。これにより、上記の両方の問題が解決されます。キューに通常のテーブルを使用することも(テーブルをキューとして使用するを参照)、ServiceBrokerを使用することもできます。どちらも適切に機能します。

    ここで、この要求をデキューして実際にHTTP呼び出しを行う方法について、専用のプロセス(つまり、この目的専用のアプリケーション)を使用することを強くお勧めします。 SQLCLRを使用することは可能ですが、それは非常に悪い選択です。 SQL Serverのリソース(特にワーカー)は、インターネットの応答を待つために無駄にすることは非常に貴重です。



    1. Heroku Postgresエラー:PGError:エラー:リレーション組織が存在しません(ActiveRecord ::StatementInvalid)

    2. MySQLにJSONデータを保存する方法

    3. SQLite3をMySQLに移行する簡単な方法は?

    4. MySQLの日付形式