é 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