1. Удаление временных таблиц
SELECT 'drop table [' + s2.name + '].[' + s.name + ']' FROM sysobjects s JOIN sysusers s2 ON s.uid = s2.uid WHERE (s.name LIKE 'stratum_inter%' OR s.name LIKE 'map_production%') OR s2.name not in('public','dbo','guest','INFORMATION_SCHEMA','sys','sqladmin','db_owner','db_accessadmin','db_securityadmin','db_ddladmin','db_backupoperator','db_datareader','db_datawriter','db_denydatareader','db_denydatawriter')
2. Удаление Пользовательских схем
SELECT 'DROP SCHEMA ['+name +']' FROM sys.schemas AS s WHERE s.name like 'CORP%' or
s.name like 'RNTC%' or
s.name like 'BUILTIN%' or
s.name not in('public','dbo','guest','INFORMATION_SCHEMA','sys','sqladmin','db_owner','db_accessadmin','db_securityadmin','db_ddladmin','db_backupoperator','db_datareader','db_datawriter','db_denydatareader','db_denydatawriter'
3. Удаление пользователей базы
--так более праввильно SELECT DISTINCT 'DROP USER [' + o.name + ']' FROM dbo.sysusers o WHERE o.name like 'CORP%' or
o.name like 'RNTC%' or
o.name like 'BUILTIN%' or
o.name not in('public','dbo','guest','INFORMATION_SCHEMA','sys','sqladmin','db_owner','db_accessadmin','db_securityadmin','db_ddladmin','db_backupoperator','db_datareader','db_datawriter','db_denydatareader','db_denydatawriter') --если не сработает, то можно попробовать так SELECT DISTINCT 'EXEC sp_dropuser ''' + o.name + '''' FROM dbo.sysusers o WHERE o.name like 'CORP%' or
o.name like 'RNTC%' or
o.name like 'BUILTIN%'
Как посмотреть к какой схеме привязан пользователь
SELECT s.name AS [schema_name], dp1.name AS [owner_name] FROM sys.schemas AS s INNER JOIN sys.database_principals AS dp1 ON dp1.principal_id = s.principal_id
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий