Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Може ли SQL Server да изпрати уеб заявка?

Възможно е, но в реалния свят е малко по-сложно от наивния подход, който си представяте. Предимно е неприемливо тригерът да чака за HTTP заявка:

  • От една страна, приложението ви ще пълзи до рязко спиране, защото тригерите ще блокират ресурси (предимно заключвания), чакащи отговор от някоя далечна WWW услуга.
  • Вторият, по-фин, но далеч по-лош, е въпросът за коректността при наличие на връщане назад. Ако транзакцията, издадена към HTTP заявките, се върне назад, няма начин да „отмените“ HTTP заявката.

Решението е да отделите тригера от HTTP заявката чрез опашка. Тригерът поставя заявката в опашка в локална опашка и извършва ангажименти, докато отделна част от обработката изключва тези заявки и издава HTTP заявката. Това решава и двата проблема, посочени по-горе. Можете да използвате обикновени таблици за опашки (вижте Използване на таблици като опашки) или можете да използвате Service Broker, и двете работят добре.

Сега относно това как да извадите тези заявки от опашката и всъщност да поставите HTTP повикването, силно препоръчвам да използвате специален процес (т.е. приложение, предназначено за тази цел). Въпреки че е възможно да се използва SQLCLR, това е много лош избор. Ресурсите на SQL Server (по-специално работниците) са много ценни, за да ги губите в чакане на интернет отговори.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Можем ли да предадем параметри на изглед в SQL?

  2. Намиране на едновременни събития в база данни между времена

  3. Клауза WHERE за тип данни на SQL Server Text

  4. Използване на пълнотекстово търсене в SQL Server 2008 в множество таблици, колони

  5. Защо прехвърлянето от float към varchar се закръгля в SQL Server?