Ещё один вариант скрипта меняющий схему. (Для SQL Server 2005)
PHP код:
USE MyDataBase --База с которой работаем
GO
DECLARE @NewSchema VarChar (128)
,@OldSchema VarChar (128)
,@TableCatalog NVarChar(128)
,@TableSchema NVarChar(128)
,@TableName sysname
SET @NewSchema = 'dbo'
SET @OldSchema = 'bmssa'
DECLARE SchemaChange CURSOR FOR
SELECT table_catalog
,table_schema
,table_name
FROM information_schema.tables
OPEN SchemaChange
FETCH NEXT FROM SchemaChange INTO @TableCatalog ,@TableSchema ,@TableName
WHILE (@@FETCH_STATUS = 0)
BEGIN
IF @NewSchema <> @TableSchema
BEGIN
EXEC ('USE ' + @TableCatalog + ';'
+ ' ALTER SCHEMA ' + @NewSchema
+ ' TRANSFER ' + @OldSchema + '.' + @TableName + ';');
IF @@ERROR = 0
BEGIN
PRINT 'В БД ' + @TableCatalog
+ ' у объекта ' + @TableName
+ ' изменена схема c ' + @TableSchema
+ ' на ' + @NewSchema
END
END
FETCH NEXT FROM SchemaChange INTO @TableCatalog ,@TableSchema ,@TableName
END
CLOSE SchemaChange
DEALLOCATE SchemaChange
GO