# DB: Простая миграция: переименование компаний и имейлов юзеров **Шаблон:** ```sql= BEGIN TRY BEGIN TRANSACTION; //твой код COMMIT TRANSACTION; END TRY BEGIN CATCH ROLLBACK TRANSACTION; DECLARE @ErrorMessage AS NVARCHAR(4000); DECLARE @ErrorSeverity AS INT; DECLARE @ErrorState AS INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState); END CATCH ``` **Путь куда нужно положить файл со скриптом для коммита:** после того как скрипт написан и сохранён в .SQL файл - его нужно положить в папку: `appulate\Sources\Release` **Пример использования скрипта:** ```sql= BEGIN TRY BEGIN TRANSACTION; SET Name = CONCAT('QA_Auto_DON''T TOUCH ProducerConnect Agency ', SUBSTRING(Name,PATINDEX('%[0-9]%',Name),1)) WHERE Name LIKE 'QA_Auto_DON''T TOUCH Freemium Agency %' UPDATE [User] SET [Email] = REPLACE([Email],'e2espam+FreemiumAgency','e2espam+ProducerConnectSubscriptionAgency') WHERE [Email] LIKE 'e2espam+FreemiumAgency%' COMMIT TRANSACTION; END TRY BEGIN CATCH ROLLBACK TRANSACTION; DECLARE @ErrorMessage AS NVARCHAR(4000); DECLARE @ErrorSeverity AS INT; DECLARE @ErrorState AS INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState); END CATCH ``` ###### tags: `DB` `Scripts`