MSSQL - The SQL Server Broker for the current database is not

Werbung
MSSQL - The SQL Server Broker for the current database is not enabled
Frage:
Ich habe eine Datenbank von MSSQL 2000 auf MSSQL 2005 / 2008 / 2012 portiert
und seitdem kommt die Fehlermeldung:
“The SQL Server Broker for the current database is not enabled, and as a
result query notifications are not supported. Please enable the Service
Broker for this database if you wish to use notifications.”
Antwort:
Im einfachsten Fall kann man den Service Broker unter den Eigenschaften der
Datenbank unter Abschnitt "Optionen", Abschnitt "Service Broker" aktivieren.
USE [master]
GO
ALTER DATABASE [IHREDATENBANK] SET ENABLE_BROKER WITH NO_WAIT
GO
Wenn das nicht hilft, dann hilft dieses Script (Danke an der Stelle an den Betreiber
von http://hrnet.trailmax.info/):
USEMASTER
DECLARE@DBNAMESYSNAME
SET@DBNAME='IHREDATENBANK'
DECLARE@ERRORMESSAGENVARCHAR(1000)
IFEXISTS(SELECT 1
FROMSYS.DATABASESWHEREDATABASE_ID=DB_ID(@DBNAME)ANDIS_BROKER_ENABLED=
0)
BEGIN
IFEXISTS(SELECT 1
FROMSYS.SYSPROCESSESWHEREDBID=DB_ID(@DBNAME)ANDSPID<>@@SPIDANDSTATUS<>'bac
BEGIN
DECLARE@SPIDINT
MSSQL - The SQL Server Broker for the current database is not enabled
DECLAREKILLPROCESSES_CURSORCURSORFOR
SELECTSPIDFROMSYS.SYSPROCESSESWHEREDBID=DB_ID(@DBNAME)ANDSPID<>@@SPIDANDST
OPENKILLPROCESSES_CURSOR
FETCHNEXTFROMKILLPROCESSES_CURSORINTO@SPID
WHILE(@@FETCH_STATUS= 0)
BEGIN
EXEC ('KILL '+@SPID)
FETCHNEXTFROMKILLPROCESSES_CURSORINTO@SPID
END
CLOSEKILLPROCESSES_CURSOR
DEALLOCATEKILLPROCESSES_CURSOR
END
IFEXISTS(SELECT 1 FROMSYS.SYSPROCESSESWHEREDBID=DB_ID(@DBNAME))
BEGIN
SET@ERRORMESSAGE='Die Datenbank '+@DBNAME+' ist gerade in Verwendung.
Der Service Broker kann aktuell nicht eingeschaltet werden.'
RAISERROR (@ERRORMESSAGE,18,9);
END
ELSE
BEGIN
IFNOTEXISTS(SELECT 1 FROMSYS.DATABASESWHEREIS_BROKER_ENABLED= 1)
EXEC('ALTER DATABASE '+@DBNAME+' SET ENABLE_BROKER')
ELSE
EXEC('ALTER DATABASE '+@DBNAME+' SET NEW_BROKER')
SELECT'Der Service Broker ist eingeschaltet auf Datenbank '+@DBNAME
END
END
MSSQL - The SQL Server Broker for the current database is not enabled
ELSE
BEGIN
IFEXISTS(SELECT 1
FROMSYS.DATABASESWHEREDATABASE_ID=DB_ID(@DBNAME)ANDIS_BROKER_ENABLED=
1)
SELECT'Der Service Broker fuer die Datenbank '+@DBNAME+' wurde eingeschaltet.'
ELSE
BEGIN
SET@ERRORMESSAGE='Die Datenbank '+@DBNAME+' existiert nicht.'
RAISERROR (@ERRORMESSAGE,18,9);
END
END
ECS-Webhosting Support
http://support.ecs-webhosting.de/Programmierung/MSSQL-The-SQL-Server-Broker-for-the-current-
Herunterladen