Rename SQL Server Schema

前端 未结 7 630
故里飘歌
故里飘歌 2020-12-07 16:42

How can I rename a schema using SQL Server?

相关标签:
7条回答
  • 2020-12-07 17:14

    If you have a large number of objects in a schema, you can use something like this to generate all the changes automatically (it only does tables and views, so before you run it, you might need to expand it to SPs, UDFs, etc.)

    USE SandBox
    
    DECLARE @OldSchema AS varchar(255)
    DECLARE @NewSchema AS varchar(255)
    DECLARE @newLine AS varchar(2) = CHAR(13) + CHAR(10)
    
    SET @OldSchema = 'dbo'
    SET @NewSchema = 'StackOverflow'
    
    DECLARE @sql AS varchar(MAX)
    
    SET @sql = 'CREATE SCHEMA [' + @NewSchema + ']' + @newLine
    SELECT @sql = @sql + 'GO' + @newLine
    SELECT @sql = @sql + 'ALTER SCHEMA [' + @NewSchema + '] TRANSFER [' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']'
         + @newLine
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = @OldSchema
    
    SET @sql = @sql + 'DROP SCHEMA [' + @OldSchema + ']'
    
    PRINT @sql -- NOTE PRINT HAS AN 8000 byte limit - 8000 varchar/4000 nvarchar - see comments
    IF (0=1) EXEC (@sql)
    
    0 讨论(0)
提交回复
热议问题