sql >> Database >  >> RDS >> Sqlserver

Meerdere tabellen hernoemen

Je zou een cursor over al je tabellen kunnen laten lopen in de xyz schema en verplaats ze allemaal naar de 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


  1. ORA-00947 Niet genoeg waarden bij het globaal declareren van het type

  2. Oracle krijgt rij waar kolomwaarde is gewijzigd

  3. Maak een SQL Server CE-databasebestand programmatisch aan

  4. MySQL-fout Er kan slechts één TIMESTAMP-kolom zijn met CURRENT_TIMESTAMP in de DEFAULT-clausule, ook al doe ik niets verkeerd