SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




WSS_Logging löschen bei Sharepoint 2013

Unbeantwortet Dieser Beitrag hat 2 Antworten

Ohne Rang
11 Beiträge
Breitner erstellt 4 März 2015 09:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

meine WSS_LOGGING ist jetzt über 8 GB groß und ich wollte diese löschen. (SQL Express 2014)
Dazu findet man folgendes SQL-Script (allerdings für SP 2010):

DECLARE TableName AS VARCHAR(MAX)
 DECLARE table_cursor CURSOR
 FOR
 SELECT TABLE_NAME
 FROM INFORMATION_SCHEMA.TABLES
 WHERE TABLE_TYPE = 'BASE TABLE'
 AND TABLE_NAME LIKE '%_Partition%'
 OPEN table_cursor
 FETCH NEXT FROM table_cursor INTO TableName
 WHILE @@FETCH_STATUS = 0
 BEGIN
 DECLARE SQLText AS NVARCHAR(4000)

 SET SQLText = 'TRUNCATE TABLE ' + TableName

 EXEC sp_executeSQL SQLText

 FETCH NEXT FROM table_cursor INTO TableName
 END
 CLOSE table_cursor
 DEALLOCATE table_cursor

Allerdings bekomme ich Fehlermeldungen beim Ausführen im SQL-Management-Studio. (Neue Abfrage unter WSS-Logging aufgerufen)

Mache ich was verkehrt oder braucht man für 2013 ein anderes Script ?

Vielen Dank schon mal für Lösungshinweise,

Haiko

 

Hier noch die Fehlermeldung:

Meldung 156, Ebene 15, Status 1, Zeile 1

Falsche Syntax in der Nähe des AS-Schlüsselworts.

Meldung 102, Ebene 15, Status 1, Zeile 9

Falsche Syntax in der Nähe von 'TableName'.

Meldung 156, Ebene 15, Status 1, Zeile 12

Falsche Syntax in der Nähe des AS-Schlüsselworts.

Meldung 102, Ebene 15, Status 1, Zeile 18

Falsche Syntax in der Nähe von 'TableName'.

 

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 März 2015 11:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich hatte schon eine ganze Weile nichts mehr mit SQL zu tun, aber Variablen müssen in TSQL mit einem @ beginnen:

DECLARE @TableName AS VARCHAR(MAX)
 DECLARE table_cursor CURSOR
 FOR
 SELECT TABLE_NAME
 FROM INFORMATION_SCHEMA.TABLES
 WHERE TABLE_TYPE = 'BASE TABLE'
 AND TABLE_NAME LIKE '%_Partition%'
 OPEN table_cursor
 FETCH NEXT FROM table_cursor INTO @TableName
 WHILE @@FETCH_STATUS = 0
 BEGIN
 DECLARE @SQLText AS NVARCHAR(4000)

 SET @SQLText = 'TRUNCATE TABLE ' + TableName

 EXEC sp_executeSQL SQLText

 FETCH NEXT FROM table_cursor INTO @TableName
 END
 CLOSE table_cursor
 DEALLOCATE table_cursor

Allerdings halte ich das für die denkbar unschönste Methode. Das Script geht einfach alle Tabellen durch und leert sie nacheinander - ohne Beachtung irgendwelcher Beziehungen. Sowas würde ich niemals machen, sondern einen von SharePoint unterstützten Weg suchen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
11 Beiträge
Breitner Als Antwort am 4 März 2015 13:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke Andi,

Deine Intuition war richtig, ich musste nur noch eine Zeile ändern:

SET @SQLText = 'TRUNCATE TABLE ' + @TableName

Auch wenn Du die Lösung nicht so gut findest, zum Löschen hatte ich nichts anderes gefunden,
und Geld für den großen SQL-Server ist im Moment nicht da, da habe ich es mal gewagt.
Bei uns läuft der SharePoint derzeit auch nur als Veröffentlichungsportal, Inhalte kommen nur von mir,
ich glaube, da brauche ich das Logging nicht.

Damit es zukünftig nicht wieder so groß wird, soll man "Verwendungsdatensammlung aktivieren"  in
Zentraladministration/Überwachung ausschalten, ich beobachte jetzt mal die Größe von WSS_Logging.

Vielen Dank und beste Grüße

Haiko