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

SQL Server, използвайки таблица като опашка

Единственият начин за постигане на опашка за блокиране без обединяване е WAITFOR (RECEIVE) . Което предполага опашки за Service Broker, с всички допълнителни разходи.

Ако използвате обикновени таблици като опашки няма да можете да постигнете блокиране без анкетиране. Трябва да проверите опашката, като поискате операция за изваждане от опашката и ако тя не върне нищо, заспивайте и опитайте отново по-късно.

Страхувам се, че няма да се съглася с Андомар тук:докато отговорът му работи като общ въпрос „има ли редове в таблицата?“ когато става въпрос за опашка, поради натовареното естество на припокриването на опашка/изваждане от опашка, проверката за редове като този е (почти) гарантирана безизходица при натоварване. Когато става въпрос за използване на таблици като опашка, човек винаги трябва да се придържа към основните операции за поставяне/демонтиране на опашка и не опитвайте изискани неща.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разрешението SELECT беше отказано на обекта „Адрес“, база данни „CNET_85731“, схема „dbo“

  2. Групирано агрегиране на низове / LISTAGG за SQL Server

  3. Необходим е динамичен Pivot с Row_Number()

  4. Намерете всички записи на листови възли, като използвате hierarchyid

  5. Завъртане на таблица заедно със сумата на стойността на колона, когато типът на колоната е nvarchar