MC, 11:29 sobota, 23.02.2013 r.
Ilustracja do artykułu: SQL Server (T-SQL) - Czyszczenie tabel dodanych przez Membership Provider-a

SQL Server (T-SQL) - Czyszczenie tabel dodanych przez Membership Provider-a

Notatka zawierająca fragmentu kodu SQL pozwalającego na wyczyszczenie tabel w bazie, dostarczonych przez Membership Provider-a.

Jak usunąć wszystkie rekordy z tabel Membership Provider-a?

Ostatnio musiałem wyczyścić wszystkie wpisy w bazie danych, dodane przez Membership Providera. Tak jak można było się spodziewać, przez wzgląd na klucze zewnętrzne, nie było to znowu takie proste zadanie. Aby pozbyć się zbędnych danych z interesującej mnie tabeli, należało najpierw wyczyścić odpowiadające im wpisy w innych, powiązanych tabelach.

Bardzo pomocny okazał się fragment kodu SQL (znaleziony tutaj), który czyści tabele dostarczone przesz Membershipa, w odpowiedniej kolejności, tak by fakt ich powiązań nie stanowił problemu.

DELETE FROM aspnet_Membership
DELETE FROM aspnet_Paths
DELETE FROM aspnet_PersonalizationAllUsers
DELETE FROM aspnet_UsersInRoles
DELETE FROM aspnet_Roles
DELETE FROM aspnet_Users
DELETE FROM aspnet_Applications
DELETE FROM aspnet_PersonalizationPerUser
DELETE FROM aspnet_Profile
DELETE FROM aspnet_SchemaVersions
DELETE FROM aspnet_WebEvent_Events

Oczywiście usunięcie danych tym sposobem jest procesem nieodwracalnym i należy mieć to na uwadze. Ponadto jak widzimy, są tutaj wyszczególnione wszystkie tabele Membership Provider-a, a nie zawsze ze wszystkich się korzysta, należy więc zakomentować te wersy kwerendy, które odnoszą się tabel nieistniejących w konkretnej bazie danych. Można również ograniczyć zakres działania tych zapytań nakładając na nie warunki logiczne, tak by nie czyściły wszystkich rekordów, a jedynie interesujący nas fragment.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: