How to change schema of all tables, views and stored procedures in MSSQL

后端 未结 4 1759
清歌不尽
清歌不尽 2020-12-13 00:37

Recently we were having issues on our database server and after long efforts it was decided to change the database server. So we managed to restore the database on another s

4条回答
  •  半阙折子戏
    2020-12-13 01:01

    You may use following script by just copy/paste for all objects

    NOTE: You need to Change schema names in script !

    DECLARE @OldSchema VARCHAR(200)
    DECLARE @NewSchema VARCHAR(200)
    DECLARE @SQL nvarchar(4000)
    SET @OldSchema = 'dbo'
    SET @NewSchema = 'Inf'
    
    DECLARE tableCursor CURSOR FAST_FORWARD FOR 
        SELECT 'ALTER SCHEMA  ['+ @NewSchema +'] TRANSFER [' + SysSchemas.Name + '].[' + DbObjects.Name + '];' AS Cmd
        FROM sys.Objects DbObjects
        INNER JOIN sys.Schemas SysSchemas ON DbObjects.schema_id = SysSchemas.schema_id
        WHERE SysSchemas.Name = @OldSchema
        AND (DbObjects.Type IN ('U', 'P', 'V'))
    OPEN tableCursor 
    FETCH NEXT FROM tableCursor INTO  @SQL
    WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT @SQL
        EXEC (@SQL)
        FETCH NEXT FROM tableCursor INTO  @SQL
    END
    CLOSE tableCursor 
    DEALLOCATE tableCursor 
    PRINT '*** Finished ***'
    

提交回复
热议问题