ITX_SP_BAK

  • Comments posted to this topic are about the item ITX_SP_BAK

  • can you fix the script please?? Needs to be more vertical... 😛

  • Sorry about that. They won't let me edit it after submission. Not sure why the formatting didn't work.

    /*********************************************************************************

    Name: SP_BAK_MIGRATE

    Author: Sean D. Brian, ITX Enterprises

    Purpose: Creates a single sql install file for all stored procs in a database. Useful for migrating procs from one server to another.

    ----------------------------------------------------------------------------

    DISCLAIMER:

    This code and information are provided "AS IS" without warranty of any kind,

    either expressed or implied, including but not limited to the implied

    warranties or merchantability and/or fitness for a particular purpose.

    -----------------------------------------------------------------------------

    LICENSE:

    This script is free to download and use for personal, educational,

    and internal corporate purposes, provided that this header is preserved.

    Redistribution or sale of this script, in whole or in part, is

    prohibited without the author's express written consent.

    Notes:

    1) Change the Database Name below from YourDBName to the name of the target DB.

    2) If XP_cmdshell is blocked, use the statement below to enable it.

    --Use when XP_cmdshell gets blocked

    -- To allow advanced options to be changed.

    EXEC sp_configure 'show advanced options', 1

    GO

    -- To update the currently configured value for advanced options.

    RECONFIGURE

    GO

    -- To enable the feature.

    EXEC sp_configure 'xp_cmdshell', 1

    GO

    -- To update the currently configured value for this feature.

    RECONFIGURE

    GO

    3) Run the statement on the Target DB. A file will be created on the target server's c drive.

    *********************************************************************************/

    CREATE PROC ITX_SP_BAK

    @P INT, --Back up Procs 1=yes 0=no

    @FN INT, --Back up Functions 1=yes 0=no

    @v-2 INT --Back up Views 1=yes 0=no

    AS

    BEGIN

    SET NOCOUNT ON;

    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Proc_Def]') AND type in ('U'))

    BEGIN

    DROP TABLE [dbo].[Proc_Def]

    END

    DECLARE @t TABLE (Test INT)

    declare c cursor local for

    (

    SELECT

    name

    FROM Sys.objects

    WHERE

    (

    @FN=1 AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')

    OR

    @P=1 AND type IN (N'P', N'PC')

    OR

    @v-2=1 AND type IN (N'V')

    )

    AND name NOT LIKE '%sp_MSdel%' --exclude replication procs

    AND name NOT LIKE '%sp_MSins%'

    AND name NOT LIKE '%sp_MSupd%'

    )

    Declare @ID NVARCHAR(MAX)

    CREATE TABLE Proc_Def (Def TEXT)

    Open c

    fetch next from c into @ID

    while @@fetch_status = 0

    BEGIN

    INSERT Proc_Def

    SELECT definition def

    FROM sys.sql_modules sm WITH ( NOLOCK )

    LEFT JOIN sys.objects so ON so.object_id = sm.object_id

    WHERE so.name=@ID

    --EXEC sys.sp_helptext @objname = @ID

    INSERT Proc_Def

    SELECT'GO'

    --Print OBJECT_DEFINITION(@ID))+' GO'

    --PRINT @ID

    fetch next from c into @ID

    END

    close c

    EXEC XP_cmdshell 'BCP "SELECT def FROM YourDBName..Proc_Def" queryout "c:\SP_Script.SQL" -c -T'

    DROP TABLE Proc_Def

    SET NOCOUNT OFF;

    END

  • much better.. thanks.

  • Enjoy!

  • Thanks for the script.

Viewing 6 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply