SQL 动态备份表

IF OBJECT_ID('usp_TableBak') IS NOT NULL
BEGIN
    DROP PROC usp_TableBak;
END 
GO
CREATE PROC usp_TableBak
(
    @charTableName VARCHAR(100),
    @charTableNameBak VARCHAR(100)=''
)
AS 
BEGIN
    -- =============================================
    --Author: yuanxx
    --Create date: 2019-03-30
    --Description: 备份表数据,若未设置新备份表名参数,则默认为备份表加当前日期,例:p_Project20190330
    -- =============================================

    IF ISNULL(@charTableNameBak,'')=''
    BEGIN
        --若未设置新备份表名参数,则默认为备份表加当前日期,例:p_Project20190330
        SET @charTableNameBak=@charTableName+CONVERT(varchar(8), getdate(),112)
    END
    
    IF OBJECT_ID(@charTableNameBak) IS NULL
        BEGIN 
            --PRINT 'SELECT * INTO ' + @charTableNameBak + ' FROM ' + @charTableName + '; '
            EXEC ('SELECT * INTO ' + @charTableNameBak + ' FROM ' + @charTableName + '; ')
        END;
END

GO 

你可能感兴趣的:(SQL,Server)