Poniżej przedstawiam skrypt, który generuje kod do odłączenia (detach) wszystkich baz danych użytkownika.

01SET NOCOUNT ON
02  
03DECLARE @dbname as varchar(80)
04PRINT '--SERVER NAME : ' + upper(@@servername) + '--> Begin script databases'
05PRINT '----------------------------------------------'
06PRINT ''
07PRINT ''
08  
09DECLARE DatabaseNameList_cur CURSOR STATIC LOCAL FORWARD_ONLY
10FOR
11SELECT  RTRIM(LTRIM([name]))
12    FROM    sys.databases
13    WHERE   database_id > 4  -- only users databases
14    AND STATE_DESC='ONLINE';
15 
16OPEN DatabaseNameList_cur
17  
18FETCH NEXT FROM DatabaseNameList_cur into @dbname
19  
20IF @@FETCH_STATUS <> 0
21   PRINT 'No database to backup...Please check your script!!!'
22  
23 
24WHILE @@FETCH_STATUS = 0
25BEGIN
26 
27    PRINT 'sp_detach_db ' + @dbname
28    PRINT 'go'
29    PRINT 'print ''Detach of ' + upper(@dbname) + ' database successfully completed'''
30    PRINT 'go'
31    PRINT ' '
32 
33FETCH NEXT FROM DatabaseNameList_cur INTO @dbname
34END
35 
36CLOSE DatabaseNameList_cur
37DEALLOCATE DatabaseNameList_cur
38 
39PRINT '----------------------------------------------'
40PRINT ''
41PRINT ''
42PRINT 'print ''SERVER NAME : ' + upper(@@servername) + '--> All databases successfully detached'''


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl