Butunin Klim |
01-04-2009 11:41 1080943 |
Удаление баз кроме ...
Не могу написать скрипт который бы удалял все базы кроме 3.
У меня есть программа которая создает базы даных за неделю их получается около 2000...
Приходится вычищать все это руками.
При этом есть 2 базы который 100% необходимы для работы + естественно служебные.
Как написать все это или сделать через SQl2000 не приложу ума
|
Цитата:
Цитата Butunin Klim
У меня есть программа которая создает базы даных за неделю »
|
Имеется в виду удаление прямо из SQL сервера? ИЛи бекапов? А имена у баз все время разные или одинаковые?
это не поможет?
|
Butunin Klim |
02-04-2009 17:20 1082108 |
ну да только есть у меня базы постоянно создаються название поднаковаое меняется переменная
echo_db_1 [..n]
Из всего этого N нужно оставить 10 баз с определенными номерами ... вот если бы можно было переменную какую нибудь включить
|
Цитата:
Цитата Butunin Klim
ну да только есть у меня базы постоянно создаються название поднаковаое меняется переменная »
|
Ниче не понял с этого предложения.
Давай так: идем в ICQ(в профиле), посмотрим, может мне проще будет написать программку для таких целей, чем мудрить со скриптом.
|
После попытки написать программу для удаления был рожден SQL скрипт, который все делает сам:
Код:
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT top 1 [name] FROM master.dbo.sysdatabases WHERE [name] like N'echo_db_%' and [name] <> N'echo_db_2008' and [name] <> N'echo_db_2009')
WHILE @name is not null
BEGIN
SELECT @SQL = 'DROP DATABASE [' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Databases: ' + @name
SELECT @name = (SELECT top 1 name FROM master.dbo.sysdatabases WHERE name like N'echo_db_%' and [name] <> N'echo_db_2008' and [name] <> N'echo_db_2009')
END
GO
Смысл прост - выбирается база, не равная echo_db_2008 или echo_db_2009, и удаляется полностью, т.е. стирается с винта. Затем из списка всех баз опять выбирается следующая неудаленная и удаляется.
в PRINT 'Dropped Databases: ' + @name
в итоге выводится вот что:
читать дальше »
Deleting database file 'C:\Program Files\Microsoft SQL Server\MSSQL\data\echo_db_2_log.LDF'.
Deleting database file 'C:\Program Files\Microsoft SQL Server\MSSQL\data\echo_db_2.mdf'.
Dropped Databases: echo_db_2
Deleting database file 'C:\Program Files\Microsoft SQL Server\MSSQL\data\echo_db_3_log.LDF'.
Deleting database file 'C:\Program Files\Microsoft SQL Server\MSSQL\data\echo_db_3.mdf'.
Dropped Databases: echo_db_3
Deleting database file 'C:\Program Files\Microsoft SQL Server\MSSQL\data\echo_db_4_log.LDF'.
Deleting database file 'C:\Program Files\Microsoft SQL Server\MSSQL\data\echo_db_4.mdf'.
Dropped Databases: echo_db_4
Deleting database file 'C:\Program Files\Microsoft SQL Server\MSSQL\data\echo_db_5_log.LDF'.
Deleting database file 'C:\Program Files\Microsoft SQL Server\MSSQL\data\echo_db_5.mdf'.
Dropped Databases: echo_db_5
|
Butunin Klim |
23-04-2009 10:01 1101774 |
Спасибо! Супер!
|
Время: 12:21.
© OSzone.net 2001-