第 4 课:删除对话对象

适用于SQL ServerAzure SQL 托管实例

在本课中,你将学习如何删除使数据库能够支持使用内部激活存储过程的对话的对象。

过程

注意

本文中的代码示例是使用 AdventureWorks2025 示例数据库进行测试的,可以从 Microsoft SQL Server 示例和社区项目 主页下载该数据库。

切换到 AdventureWorks 数据库

将以下代码复制并粘贴到“查询编辑器”窗口中,然后运行它以将上下文切换到 AdventureWorks2025 数据库。

USE AdventureWorks2022;
GO

删除会话对象。

将以下代码复制并粘贴到“查询编辑器”窗口中,然后运行它以删除用于支持聊天的对象。

IF EXISTS (SELECT *
           FROM sys.objects
           WHERE name = N'TargetActiveProc')
    DROP PROCEDURE TargetActiveProc;

IF EXISTS (SELECT *
           FROM sys.services
           WHERE name = N'//AWDB/InternalAct/TargetService')
    DROP SERVICE [//AWDB/InternalAct/TargetService];

IF EXISTS (SELECT *
           FROM sys.service_queues
           WHERE name = N'TargetQueueIntAct')
    DROP QUEUE TargetQueueIntAct;

-- Drop the initiator queue and service if they already exist.
IF EXISTS (SELECT *
           FROM sys.services
           WHERE name = N'//AWDB/InternalAct/InitiatorService')
    DROP SERVICE [//AWDB/InternalAct/InitiatorService];

IF EXISTS (SELECT *
           FROM sys.service_queues
           WHERE name = N'InitiatorQueueIntAct')
    DROP QUEUE InitiatorQueueIntAct;

-- Drop contract and message type if they already exist.
IF EXISTS (SELECT *
           FROM sys.service_contracts
           WHERE name = N'//AWDB/InternalAct/SampleContract')
    DROP CONTRACT [//AWDB/InternalAct/SampleContract];

IF EXISTS (SELECT *
           FROM sys.service_message_types
           WHERE name = N'//AWDB/InternalAct/RequestMessage')
    DROP MESSAGE TYPE [//AWDB/InternalAct/RequestMessage];

IF EXISTS (SELECT *
           FROM sys.service_message_types
           WHERE name = N'//AWDB/InternalAct/ReplyMessage')
    DROP MESSAGE TYPE [//AWDB/InternalAct/ReplyMessage];

下一步

这节课结束了本教程。 教程只是简要介绍;它们不描述所有可用的选项。 教程使用简化的逻辑和错误处理,不应在生产环境中使用它们。 若要创建高效、可靠和强健的会话,您需要比教程中的示例更为复杂的代码。