

set xact_abort on
go

begin transaction
go

alter table TabTranPosizEventi drop
  constraint DF_TabTranPosizEventi_toAs400 ,
  constraint FK_TabTranPosizEventi_AnagPosizioni ,
  constraint FK_TabTranPosizEventi_AnagTipoEvento 
go

exec sp_rename 'PK_TabTranPosizEventi', 'tmp__PK_TabTranPosizEventi', 'OBJECT'
go

exec sp_rename 'TabTranPosizEventi', 'tmp__TabTranPosizEventi_0', 'OBJECT'
go

create table TabTranPosizEventi(
  CodEvento      nvarchar(10) not null,
  IdxPosizione   int          not null,
  IdxPosizioneTo int,
  IdxBloccoTo    int,
  toAs400        bit          constraint DF_TabTranPosizEventi_toAs400 default (1),

  constraint PK_TabTranPosizEventi_1 primary key(CodEvento,IdxPosizione)
)
go

alter table TabTranPosizEventi add
  constraint FK_TabTranPosizEventi_AnagTipoEvento foreign key(CodEvento) references AnagTipoEvento(CodEvento) on update cascade,
  constraint FK_TabTranPosizEventi_AnagPosizioni foreign key(IdxPosizione) references AnagPosizioni(IdxPosizione) on update cascade
go

exec sp_addextendedproperty 'MS_Description', 'NON MODIFICARE: nel codice si usano questi campi x chiamate...', 'SCHEMA', 'dbo', 'TABLE', 'TabTranPosizEventi', 'COLUMN', 'CodEvento'
go

exec sp_addextendedproperty 'MS_Description', 'posizione (stato) logica di partenza', 'SCHEMA', 'dbo', 'TABLE', 'TabTranPosizEventi', 'COLUMN', 'IdxPosizione'
go

exec sp_addextendedproperty 'MS_Description', 'posizione (stato) logica di arrivo', 'SCHEMA', 'dbo', 'TABLE', 'TabTranPosizEventi', 'COLUMN', 'IdxPosizioneTo'
go

exec sp_addextendedproperty 'MS_Description', 'blocco di destinazione', 'SCHEMA', 'dbo', 'TABLE', 'TabTranPosizEventi', 'COLUMN', 'IdxBloccoTo'
go

insert into TabTranPosizEventi(CodEvento,IdxPosizione,IdxPosizioneTo,toAs400) select CodEvento,IdxPosizione,IdxPosizioneTo,toAs400 from tmp__TabTranPosizEventi_0
go

drop table tmp__TabTranPosizEventi_0
go

commit
go


-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(436, GETDATE())
GO
