Как перенести всю схему таблицы из одной базы данных в другую базу данных с помощью хранимой процедуры
Я хочу сравнить / перенести табличную схему всех таблиц одной базы данных(скажем, 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.