datetime century date into pad dynamic cursor money percent sp job isnumeric isdate over update
SQLUSA.com
SQL 2008 GRAND SLAM ON 49 CD
FREE TRIAL  CLICK HERE TO ORDER  SEARCH
SQL Server Training SQL 2005 Scripts SQL 2008 Articles
SQL JOBS News Format Developer
How to generate detach-attach script?

Execute the following SQL Server T-SQL script in Management Studio Query Editor to create and test a stored procedure for database detach and attach script generation.

-- SQL Server stored procedure - SQL cursor - SQL Server dynamic sql
-- SQL Server attach / detach
USE AdventureWorks;
Go
CREATE PROCEDURE DetachAttachScriptGenerator
                @Database SYSNAME  = '%'
AS
  BEGIN
    SET NOCOUNT  ON
    
    DECLARE  @SQL VARCHAR(MAX)
    
    SET @SQL = ''
    
    CREATE TABLE #SQLScript (
      Line VARCHAR(4000))
    
    DECLARE  @curDatabaseName CURSOR,
             @dbName          SYSNAME
    
    SET @curDatabaseName = CURSOR FOR SELECT NAME
                                      FROM   SYS.DATABASES
                                      WHERE  NAME NOT IN ('master','tempdb','model','msdb')
                                             AND NAME LIKE @Database
    
    OPEN @curDatabaseName
    
    FETCH NEXT FROM @curDatabaseName
    INTO @dbName
    
    WHILE (2 > 1)
      BEGIN
        SELECT @SQL = @SQL + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) + '--' + @dbName + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10)
        
        BEGIN
          SELECT @SQL = @SQL + 'exec sp_detach_db @dbname = ''' + NAME + ''' ' + CHAR(13) + CHAR(10) + 'go' + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10)
          FROM   SYS.DATABASES
          WHERE  NAME = @dbName
        END
        
        BEGIN
          SELECT @SQL = @SQL + 'exec sp_attach_db @dbname = ''' + @dbName + ''','
          
          INSERT INTO #SQLScript
          EXEC( 'select char(13) + '' @filename'' + cast(rowNumber as varchar(10))
          + '' = '''''' + filename + '''''''' +  case when rowNumber <>
          (select count(*) from sys.sysfiles) then '','' else '''' end
          from ( select filename, row_number() over (order by fileid)
          as rowNumber from ' + @dbname + '.sys.sysfiles ) as files')
          
          SELECT @SQL = @SQL + Line
          FROM   #SQLScript
          
          TRUNCATE TABLE #SQLScript
        END
        
        FETCH NEXT FROM @curDatabaseName
        INTO @dbName
        
        IF @@FETCH_STATUS <> 0
          BREAK
      END
    
    SELECT @SQL
  END
 
GO
 
-- Test sproc
-- Execute stored procedure
EXEC DetachAttachScriptGenerator
  @Database = 'AdventureWorks%'
 
/* Partial results
 
 
    --AdventureWorks   
    exec sp_detach_db @dbname = 'AdventureWorks'  
    go   
    exec sp_attach_db @dbname = 'AdventureWorks',  @filename1 =
    'C:\DATA\AdventureWorks_Data.mdf', 
    @filename2 = 'C:\DATA\AdventureWorks_Log.ldf'   
    --AdventureWorksDW  
     exec sp_detach_db @dbname = 'AdventureWorksDW'  
     go   
     exec sp_attach_db @dbname = 'AdventureWorksDW',
      @filename1 = 'C:\DATA\AdventureWorksDW_Data.mdf', 
      @filename2 = 'C:\DATA\AdventureWorksDW_Log.LDF'   

*/

Order SQL 2008 GRAND SLAM Today!
SQLUSA.com Home Page
SQL Server Training at www.sqlusa.com.
Microsoft SQL Server 2012 Training Videos at www.sqlusa.com.
SQL Server 2008 Video Training at www.sqlusa.com.
SQL Server 2005 Training Videos at www.sqlusa.com.
Accounting
Administrative
Advertising
Arts
Architecture
Banking
Business Intelligence
Career Jobs
Celebrity
Computer
Consulting
Customer Service
Education
Engineering
Entertainment
Entry Level
Executive
Federal
Finance
Government
Hardware
Healthcare
Hospital
Human Resources
Information Technology
Insurance
Internet
Job Openings
Laboratory
Law Enforcement
Legal
Logistics
Manufacturing
Marketing
Medical
Military
Nursing
Pharmaceutical
Physician
Public Relations
Publishing
Real Estate
Restaurant
Retail
Sales
Social Media
Software
SQL Database
Telecomm
Therapist
Training
Transportation
Truck Driver
Travel
Web
Work from Home

FREE SS SQL / BI OLAP Short Videos on YOUTUBE.com

Microsoft Community Contributor 2011 Microsoft Community Contributor 2012

Search SQLUSA FREE SQL Server Articles & FREE T-SQL Scripts

JOIN US ON TWITTER

Copyright 2005-2012, SMI Corp. All Rights Reserved.

SQL Server 2012 is a program product of Microsoft Corporation.
SQL Server 2008 is a program product of Microsoft Corporation.
SQL Server 2005 is a program product of Microsoft Corporation.
SQL Server 2000 is a program product of Microsoft Corporation.