Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 5 Nächste Version anzeigen »

Es gibt Fälle in denen bei Verwendung von ADVOKAT mit Microsoft SQL Server nach einem bestimmten Wert (Text/Zahl/Wort/Wortteil) in der Datenbank gesucht wird.
Dafür muss Microsoft SQL Management Studio verwendet werden, das Tool "AdvoDiag.exe" ist dafür nicht verwendbar.

Vorgehensweise

  1. Verbinden Sie sich als Domänenadministrator per Remotedesktopverbindung auf den Datenbankserver. Ist AdvoAll im Einsatz, so kann alternativ auch der Serviceaccount von AdvoAll genutzt werden.
    Starten Sie Microsoft SQL Management Studio. Hinweis: Sollte Microsoft SQL Management Studio nicht starten oder eine Fehlermeldung anzeigen, versuchen Sie es erneut per Rechtsklick > "Als Administrator ausführen".

  2. Verbinden Sie sich mit jener Microsoft SQL Instanz, welche die ADVOKAT Datenbanken beinhaltet.
    Den Instanznamen können Sie in der Konfigurationsdatei "Advokat.ini" im ADVOKAT Backend unter "...\ADVOKAT\Daten\" ermitteln.

    DATENBANK=S:\ADVOKAT\DATEN\ADVOKAT.MDB/SERVER/INSTANZ/Advokat_DATEN

    Als Authentifizierungsmethode sind folgende Varianten möglich:

    • Windows-Authentifizierung

    • SQL Server-Authentifizierung

      • Benutzername: advokat

      • Kennwort: Das Kennwort ist beim ADVOKAT Support zu erfragen!


  3. Nach dem erfolgreichen Verbindungsaufbau werden in der linken Spalte "Objekt-Explorer" beim Unterpunkt "Datenbanken" alle verfügbaren Datenbanken angezeigt.
    Es ist jene Datenbank per Rechtsklick > "Neue Abfrage" auszuwählen, deren Inhalt man überprüfen möchte. In den meisten Fällen handelt es sich dabei um die Datenbank "ADVOKAT_Daten".


  4. Im Abfragefenster können nun SQL-Befehle abgesetzt werden. Die Ausführung eines SQL-Befehls erfolgt über die Schaltfläche "Ausführen".
    Nachdem die Ausführung eines Befehls abgeschlossen ist – diese kann Sekunden bis Minuten dauern, die Dauer wird angezeigt – erscheint der Bereich "Ergebnisse".


    In diesem Beispiel wird nach dem Wort "Test" gesucht, es werden als Ergebnis alle Datenbankfelder aufgelistet in denen dieses Wort vorkommt.
    Die Angabe des Symbols "%" (Wildcard) ist nicht erforderlich, auf die Groß- und Kleinschreibung muss auch nicht geachtet werden.

    Falls Sie nicht das gewünschte Ergebnis finden, dann sind Schritt 3 und 4 mit einer anderen Datenbank zu versuchen: ADVOKAT_AdvoErv oder ADVOKAT_Tabellen

    DECLARE @SearchStr nvarchar(100) = 'Test'
    DECLARE @Results TABLE (ColumnName nvarchar(370), ColumnValue nvarchar(3630))
    
    SET NOCOUNT ON
    
    DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
    SET  @TableName = ''
    SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
    
    WHILE @TableName IS NOT NULL
    
    BEGIN
        SET @ColumnName = ''
        SET @TableName = 
        (
            SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
            FROM     INFORMATION_SCHEMA.TABLES
            WHERE         TABLE_TYPE = 'BASE TABLE'
                AND    QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
                AND    OBJECTPROPERTY(
                        OBJECT_ID(
                            QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                             ), 'IsMSShipped'
                               ) = 0
        )
    
        WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
    
        BEGIN
            SET @ColumnName =
            (
                SELECT MIN(QUOTENAME(COLUMN_NAME))
                FROM     INFORMATION_SCHEMA.COLUMNS
                WHERE         TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                    AND    TABLE_NAME    = PARSENAME(@TableName, 1)
                    AND    DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
                    AND    QUOTENAME(COLUMN_NAME) > @ColumnName
            )
    
            IF @ColumnName IS NOT NULL
    
            BEGIN
                INSERT INTO @Results
                EXEC
                (
                    'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) 
                    FROM ' + @TableName + ' (NOLOCK) ' +
                    ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
                )
            END
        END    
    END
    
    SELECT ColumnName, ColumnValue FROM @Results
  • Keine Stichwörter