03. marts 2008 - 14:37Der er
9 kommentarer og 1 løsning
Delete stored procedures
Hvordan kan jeg slette alle stored procedure der starter med f.eks 'Version_12_' dvs. noget i stil med 'delete stored_procedure where name like 'Version12_%'
Jeg kan selvfølge bare højreklikke på hver enkelt af dem og vælge delete, men da der er over 100 med samme versions nr, er det alt for tidskrævende
Hvad med at køre et script a la dette i et SQL-vindue?
drop procedure Version_12_1; drop procedure Version_12_2; drop procedure Version_12_3; drop procedure Version_12_4; .. drop procedure Version_12_99; drop procedure Version_12_100;
hvordan det, jeg ved ikke hvad der står efter Version_12_ kan selvfølgelig se det i Server manager, men som sagt er der over 100, og der kan komme nye til. Jeg ved godt at jeg kun skal oprette scriptet en gang og herefter vedligeholde det og at jeg kan skifte versions nr. ved hjælp af replace, men hel ærlig det gider jeg godt nok ikke, altså at oprette det script. Og jeg er sikker på at der findes en nemmere måde at gøre det på.
CREATE PROCEDURE USP_DROPSPS AS DECLARE @name VARCHAR(32) DECLARE c CURSOR FOR SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME LIKE 'Version12_%' OPEN c FETCH NEXT FROM c INTO @name WHILE @@FETCH_STATUS = 0 BEGIN EXEC('DROP PROCEDURE ' + @name) FETCH NEXT FROM c INTO @name END CLOSE c DEALLOCATE c GO
Arne: Bliver lige nødt til at spørge: Hvor findes INFORMATION_SCHEMA.ROUTINES? Antog først det var en tabel i en af systemdatabaserne. Lidt søgning afslører at det er et systemview (jvf. nedenstående link), men jeg kan ikke finde det nogensteds i systemdatabaserne (SQL 2000).
Tak Arne! kom med et svar, det var lige det jeg skulle bruge, har dog ikke prøvet det endnu, men har testet at SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME LIKE 'Version12_%' virker og det gør det, så udfra det kan man altid lave noget kode som virker på den måde man vil. F.eks. noget c# kode hvor man kan vælge/indtaste hvilken version man vil slette.
INFORMATION_SCHEMA er specielle - jeg ved faktisk ikke om de eksisterer som synlige views.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.