我正在尝试从存储过程中启用服务代理但没有成功。
这是我正在使用的存储过程:
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 语句。
知道如何解决这个问题吗?
谢谢