Member 12645291 Ответов: 1

Как перенести всю схему таблицы из одной базы данных в другую базу данных с помощью хранимой процедуры


Я хочу сравнить / перенести табличную схему всех таблиц одной базы данных(скажем, Database2) в другую(скажем, Database1), и я хочу, чтобы это произошло через хранимую процедуру, не могли бы вы помочь мне в этом?

Например. если база данных 1 имеет таблицу employee, в которой столбец empname равен varchar (3), а база данных 2 имеет таблицу employee, в которой столбец empname равен varchar(5), то после запуска скрипта столбец empname таблицы database1 employee также должен стать varchar(5). Я написал нижеприведенную хранимую процедуру для того же самого, но не знаю, будет ли это работать или нет

Что я уже пробовал:

CREATE PROCEDURE [dbo].[CompareSchemaScript] ( @ix_sys_error int OUTPUT ) AS BEGIN TRY DECLARE @LogError INT, @PrimaryKey INT,@ErrorMessage nvarchar(2000) EXEC log_ins @LogError, @PrimaryKey,5,1,NULL,1,'Script Started' ALTER SCHEMA Database1.tables TRANSFER Database2.tables;
EXEC log_ins @LogError, @PrimaryKey,7,1,NULL,1,'Script Completed Successfully' END TRY

BEGIN CATCH
SELECT @ix_sys_error = ERROR_NUMBER()
SELECT @ErrorMessage = ERROR_MESSAGE()
EXEC ix_sys_event_log_ins @LogError, @PrimaryKey,6,1,NULL,1,@ErrorMessage,NULL
END CATCH

IF (@ix_sys_error !=0)
RETURN 1
ELSE
RETURN 0
END

[no name]

"но не знаю, сработает это или нет", ну попробуй и узнай.

PIEBALDconsult

Нет. Есть ли причина не использовать SSMS или SSIS?
Если две базы данных находятся в одном экземпляре, выберите INTO может работать, если ваши потребности просты.
Только на этой неделе я начал использовать SMO; здесь есть несколько статей о CP.

1 Ответов

Рейтинг:
1

RedDk

Поможет ли это?

https://www.codeproject.com/tips/664327/copy-table-schema-and-data-from-one-database-to-an