• У меня есть система с версией росы. любая версия имеет 5-9 сценариев обновления. чтобы обновить версию 1 до 5, я должен запустить каждый скрипт в любой версии в правильном порядке (01_script, 02_script, 03_script ...), если установлена версия 01, я начинаю работать со скриптом из версии 02, у меня есть таблица с значение номера версии, которое также записано в реестре.

у меня есть возможность взять все сценарии и объединить их в один сценарий

Как я могу сделать скрипт, который будет проверять версию и запускать правильный скрипт?

(SQL Server 2008r2)

1 ответ1

0

это возможно, но не всегда легко. В качестве сундука:

if not exists (select * from sysobjects where name='VersionInfo' and xtype='U')
    create table VersionInfo (InstDate dateTime,[Version] int, Name varchar(64) not null)
GO    
if (Select Coalesce(Max([Version]),0) from VersionInfo) = 0
    begin   
      Print 'Your first Script'      
      EXEC('Create Table test1 (ID int)') 
      Insert into Test1 Values (1)
      insert into VersionInfo Values (GetDate(),1,'Version 1')
    end
if (Select Coalesce(Max([Version]),0) from VersionInfo) = 1
    begin   
      Print 'Your second Script'      
      EXEC('Create Table test2(ID int)') 
      insert into VersionInfo Values (GetDate(),2,'Version 2')
    end    
if (Select Coalesce(Max([Version]),0) from VersionInfo) = 2
    begin   
      Print 'Your third Script'     
      Insert into Test1 Values (1)
      insert into VersionInfo Values (GetDate(),3,'Version 3')
    end  

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .