Показать сообщение отдельно
Старый 01.07.2010, 14:59   #1  
driller is offline
driller
Сам.AX
Аватар для driller
Самостоятельные клиенты AX
SAP
 
78 / 54 (2) ++++
Регистрация: 11.04.2007
Адрес: Санк-Петербург
Скрипт меняющий схему БД
Ещё один вариант скрипта меняющий схему. (Для 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 
__________________
"Считать метафору доказательством, поток праздных слов источником истины, а себя оракулом - это заблуждение, свойственное всем нам."
Поль Валери