Herausfinden ob bzw. welche Serviceinstanz eine bestimmte Datenbank verwendet

Wenn man nicht mehr ganz sicher ist ob oder wo eine bestimmte Datenbank mit einer Serviceinstanz verknüpft ist, kann man das recht einfach auf der K2-Datanbank herausfinden.

Kann sein, das man das auch schneller und/oder eleganter herausfinden kann, mich hat es aber interessiert wo ich die Konfigurationen dafür in der K2-Datanbank befinden.

Zu finden sind die Infos in der Tabelle [SmartBroker].[ServiceInstance]

Die Konfigurationsdaten findest Du in der XML-Konfiguration in der Spalte „ServiceInstanceXML“

Mit dem folgenden SQL-Statement kann die Info recht einfach extrahiert werden (als Platzhalter habe ich an der Stelle „IHRE_DATENBANK“ eingesetzt)

SELECT
  [ServiceInstanceXML].query('/serviceinstance/serviceconfig/settings/key[@name="Database"]').value('.','nvarchar(50)') As [DataBase],
  [ServiceInstanceXML].value('(/serviceinstance/@name)[1]','nvarchar(50)') As [ServiceInstanceName]
  ,*
   FROM [K2].[SmartBroker].[ServiceInstance]
   where [ServiceInstanceXML].query('/serviceinstance/serviceconfig/settings/key[@name="Database"]').value('.','nvarchar(50)') like '%IHRE_DATANBANK%'

-- ODER

SELECT
  [ServiceInstanceXML].query('/serviceinstance/serviceconfig/settings/key[@name="Database"]').value('.','nvarchar(50)') As [DataBase],
  [ServiceInstanceXML].value('(/serviceinstance/@name)[1]','nvarchar(50)') As [ServiceInstanceName]
  ,*
   FROM [K2].[SmartBroker].[ServiceInstance]
   where [ServiceInstanceXML].query('/serviceinstance/serviceconfig/settings/key[@name="Database"]').value('.','nvarchar(50)') = 'IHRE_DATANBANK'

 

 

Nach oben