sql >> Databasteknik >  >> RDS >> Sqlserver

Byt namn på SQL Server Schema

Om du har ett stort antal objekt i ett schema kan du använda något sånt här för att generera alla ändringar automatiskt (det gör bara tabeller och vyer, så innan du kör det kan du behöva expandera det till SP, UDF, 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)


  1. Hur utnyttjar du flerkärniga processorer i dina PHP/MySQL-applikationer?

  2. Skulle detta ER-diagram istället använda ett ternärt samband

  3. Hur kombinerar jag två UPDATE-satser i en MySQL-fråga?

  4. Oracle Spatial - välj objekt som faller inom området