Executando uma consulta com condições

0
  • eu tenho um sistema com versão de orvalho. qualquer versão tem atualização 5-9 scripts. a fim de atualizar a versão 1 para 5 eu tenho que executar cada script em qualquer versão na ordem correta (01_script, 02_script, 03_script ...) se a versão instalada é 01, eu começo a correr para script da versão 02 eu tenho uma tabela com o valor do número da versão que também foi escrito no registro.

Eu tenho a capacidade de pegar todo o script e uni-los em um script

Como posso criar um script que verifique a versão e comece a executar o script correto?

(sql server 2008r2)

    
por Gilad Bronshtein 30.11.2012 / 19:27

1 resposta

0

é possível, mas nem sempre é fácil. Como um baú:

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  
    
por 30.11.2012 / 20:56