-- Добавляем таблицы для хранения информации по Актам
CREATE TABLE PowerObjectOwners
(
	ApplicationID	int NOT NULL,
	ItemNum			int NOT NULL,
	RefID			int,
	Caption			nvarchar(300),	
	ForCompany			bit NOT NULL,        
	PRIMARY KEY (ApplicationID, ItemNum)
)
GO
ALTER TABLE PowerObjectOwners
	ADD FOREIGN KEY (ApplicationID)
	REFERENCES TCApplications(TCApplicationID)
	ON DELETE CASCADE
        ON UPDATE CASCADE

ALTER TABLE PowerObjectOwners
	ADD FOREIGN KEY (RefID)
	REFERENCES Объект(Код_объекта)
	ON DELETE CASCADE
GO
CREATE TABLE TCActs
(
	ActID			int NOT NULL,
    	Сable	 		bit,  	
	PRIMARY KEY (ActID)	
)
GO
ALTER TABLE TCActs
	ADD FOREIGN KEY (ActID)
	REFERENCES TCApplications(TCApplicationID)
	ON DELETE CASCADE
        ON UPDATE CASCADE

-- Увеличиваем длину полей для Наименования и Диспетчерского наименования
DROP VIEW ExistingObjects
DROP VIEW DesignObjects

GO

alter table Объект alter column Наименование nvarchar(200) NULL
alter table Линия alter column Диспетчерское_наименование nvarchar(200) NULL

GO

CREATE VIEW ExistingObjects
	WITH SCHEMABINDING
	AS
	SELECT 
	   	Код_объекта,
	        Код_типа_объекта,     
	        Код_диспетчерского_управления, 
	        Код_организации_владельца, 
	        Наименование,         
	        Код_объекта_владельца,
		Инвентарный_номер,    
		Примечание,	     
		GUID,		     
	        Балансовая_стоимость, 
	        Код_обслуживающей_организации, 
	        Порядковый_номер,
                Номер_документа,
                Дата_документа
		В_проекте     
	FROM dbo.Объект
	WHERE В_проекте = 0
	WITH CHECK OPTION

GO

CREATE VIEW DesignObjects
	WITH SCHEMABINDING
	AS
	SELECT 
	   	Код_объекта,
	        Код_типа_объекта,     
	        Код_диспетчерского_управления, 
	        Код_организации_владельца, 
	        Наименование,         
	        Код_объекта_владельца,
		Инвентарный_номер,    
		Примечание,	     
		GUID,		     
	        Балансовая_стоимость, 
	        Код_обслуживающей_организации, 
	        Порядковый_номер,
                Номер_документа,
                Дата_документа
 		В_проекте     
	FROM dbo.Объект
	WHERE В_проекте = 1
	WITH CHECK OPTION
