Renaming multiple tables

前端 未结 4 391
忘了有多久
忘了有多久 2020-12-07 03:31

In SQL Server, I have a database abc. In this database I have hundreds of tables. Each of these tables is called xyz.table

I want to change

4条回答
  •  日久生厌
    2020-12-07 04:16

    You could have a cursor run over all your tables in the xyz schema and move all of those into the abc schema:

    DECLARE TableCursor CURSOR FAST_FORWARD 
    FOR
        -- get the table names for all tables in the 'xyz' schema
        SELECT t.Name
        FROM sys.tables t 
        WHERE schema_id = SCHEMA_ID('xyz')
    
    DECLARE @TableName sysname
    
    OPEN TableCursor
    
    FETCH NEXT FROM TableCursor INTO @TableName
    
    -- iterate over all tables found    
    WHILE @@FETCH_STATUS = 0
    BEGIN
        DECLARE @Stmt NVARCHAR(999)
    
        -- construct T-SQL statement to move table to 'abc' schema
        SET @Stmt = 'ALTER SCHEMA abc TRANSFER xyz.' + @TableName
        EXEC (@Stmt)
    
        FETCH NEXT FROM TableCursor INTO @TableName
    END
    
    CLOSE TableCursor
    DEALLOCATE TableCursor
    

提交回复
热议问题