05. september 2012 - 15:03Der er
8 kommentarer og 1 løsning
Løbe alle databaser igennem, og rydde en bestemt tabel
Hej.
Jeg har en produktionsserver med adskillelige umbraco løsninger på.
For hver database findes tabellen "umbracoLog" som løbende vokser:
CREATE TABLE [dbo].[umbracoLog]( [id] [int] IDENTITY(1,1) NOT NULL, [userId] [int] NOT NULL, [NodeId] [int] NOT NULL, [Datestamp] [datetime] NOT NULL, [logHeader] [nvarchar](50) NOT NULL, [logComment] [nvarchar](4000) NULL,
Jeg kunne godt tænke mig et sql script der løb samtlige databaser igennem der starter med "UMB_", og ryddede ovenstående tabel for poster der er ældre end en mdr.
Jeg kan godt lige tage en enkelt af gangen selv, men kunne være skønt med et "ordentligt" oprydningsscript der tog dem alle.
Jeg vil gerne iterere igennem alle database og udføre ovenstående. Jeg kan godt hente alle databaser, jeg kan godt finde ud af at slette fra en tabel. Men hvordan gør jeg det i en omgang ?
CREATE PROCEDURE usp_cleanup AS DECLARE @name VARCHAR(255) DECLARE c CURSOR FOR SELECT name FROM sys.databases WHERE name LIKE 'XXX%' OPEN c FETCH NEXT FROM c INTO @name WHILE @@FETCH_STATUS = 0 BEGIN -- EXEC('DELETE FROM ' + @name + '..foobar') PRINT 'DELETE FROM ' + @name + '..foobar' FETCH NEXT FROM c INTO @name END CLOSE c DEALLOCATE c GO
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.