删除所有Service Broker消息类型

7gcisfzg  于 2022-10-03  发布在  其他
关注(0)|答案(1)|浏览(151)

目前,我正在使用:

  1. SELECT * FROM sys.service_message_types

要列出Service Broker消息类型,请执行以下操作。但是,我该如何删除所有消息类型呢?

fdbelqdn

fdbelqdn1#

下面的示例使用model数据库作为排除系统消息类型的引用,删除当前数据库中的所有用户消息类型。

注意:如果合同使用该类型,则DROP将失败。绑定到该类型并间接引用SB对象(即服务)的合同需要首先删除。

  1. DECLARE @SQL nvarchar(MAX);
  2. SELECT @SQL = STRING_AGG(N'DROP MESSAGE TYPE ' + QUOTENAME(current_db.name), ';')
  3. FROM sys.service_message_types AS current_db
  4. LEFT JOIN model.sys.service_message_types AS model_db ON
  5. model_db.message_type_id = current_db.message_type_id
  6. WHERE model_db.message_type_id IS NULL;
  7. EXECUTE sp_executesql @SQL;

相关问题