如何使用存储过程启用SQL Server Service Broker?

问题描述 投票:0回答:0

我正在尝试从存储过程中启用服务代理但没有成功。

这是我正在使用的存储过程:

CREATE PROCEDURE [dbo].[ServiceBrokerEnable]
AS
    DECLARE @Enabled BIT
    DECLARE @Name SYSNAME

    SELECT
        @Enabled = sdb.is_broker_enabled,
        @Name = sdb.name
    FROM sys.databases sdb
    WHERE sdb.database_id = DB_ID()

    IF (@Enabled = 0)
    BEGIN
        DECLARE @Query NVARCHAR(MAX)
        SET @Query = 'ALTER DATABASE [' + @Name + '] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE'

        EXEC (@Query)
    END

    RETURN 0

我得到这个例外:

多语句事务中不允许使用 ALTER DATABASE 语句。

知道如何解决这个问题吗?

谢谢

c# sql sql-server service-broker
© www.soinside.com 2019 - 2024. All rights reserved.