-- 3.5.60 Power
-- Добавляем дубликат справочних изменяемых справочных атрибутов в [Трансформатор тока]
alter table Трансформатор_тока add Inom_первич		float
alter table Трансформатор_тока add Inom_вторич          float
alter table Трансформатор_тока add Код_класса_точности_1_обм int
alter table Трансформатор_тока add Код_класса_точности_2_обм int
alter table Трансформатор_тока add Код_класса_точности_3_обм int
alter table Трансформатор_тока add Код_класса_точности_4_обм int
alter table Трансформатор_тока add Код_класса_точности_5_обм int
GO
ALTER TABLE Трансформатор_тока
        ADD FOREIGN KEY (Код_класса_точности_5_обм)
                              REFERENCES Справочник_классов_точности_тр_тока
ALTER TABLE Трансформатор_тока
        ADD FOREIGN KEY (Код_класса_точности_4_обм)
                              REFERENCES Справочник_классов_точности_тр_тока
ALTER TABLE Трансформатор_тока
        ADD FOREIGN KEY (Код_класса_точности_3_обм)
                              REFERENCES Справочник_классов_точности_тр_тока
ALTER TABLE Трансформатор_тока
        ADD FOREIGN KEY (Код_класса_точности_2_обм)
                              REFERENCES Справочник_классов_точности_тр_тока
ALTER TABLE Трансформатор_тока
        ADD FOREIGN KEY (Код_класса_точности_1_обм)
                              REFERENCES Справочник_классов_точности_тр_тока
GO
-- Доп. поле, нужно для предохранителей
alter table Справочник_опорных_изоляторов add Масса float
GO
-- Добавляем Справочник контактов предохранителя
CREATE TABLE Спр_контактов_предохранителей 
(
        Код_типа_контакта		int IDENTITY(1,1),
        Описание			nvarchar(50) NOT NULL,
	Код_класса_напряжения		int NOT NULL,
        Масса				float,
        Высота				float,
        Ширина				float,
	ClimaticAllocationID	 	int,
	Скрытое				bit,
        PRIMARY KEY (Код_типа_контакта)
 )
exec sp_addextendedproperty 'MS_Description', N'Типы контактов предохранителей', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей'
exec sp_addextendedproperty 'MS_Description', N'Уникальный идентификатор типа контакта предохранителя', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей', 'Column', 'Код_типа_контакта'
exec sp_addextendedproperty 'MS_Description', N'Маркировка типа контакта', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей', 'Column', 'Описание'
exec sp_addextendedproperty 'MS_Description', N'Класс напряжения контакта', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей', 'Column', 'Код_класса_напряжения'
exec sp_addextendedproperty 'MS_Description', N'Масса контакта в килограммах', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей', 'Column', 'Масса'
exec sp_addextendedproperty 'MS_Description', N'Высота контакта в миллиметрах', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей', 'Column', 'Высота'
exec sp_addextendedproperty 'MS_Description', N'Ширина контакта в миллиметрах', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей', 'Column', 'Ширина'
exec sp_addextendedproperty 'MS_Description', N'Климатическое исполнение и категория размещения', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей', 'Column', 'ClimaticAllocationID'
exec sp_addextendedproperty 'MS_Description', N'Признак видимости', 'user', 'dbo', 'Table', 'Спр_контактов_предохранителей', 'Column', 'Скрытое'
GO
ALTER TABLE Спр_контактов_предохранителей
        ADD FOREIGN KEY (Код_класса_напряжения)
                              REFERENCES Справочник_классов_напряжения

ALTER TABLE Спр_контактов_предохранителей
  ADD FOREIGN KEY (ClimaticAllocationID)
    REFERENCES DictClimaticAllocations

GO
-- Заполним справочник контактов данными
<![CDATA[                                         
--Код	Описание	UnomID	Клим.исп.	Масса 
1,	'К01-3-У3',	11,	3,		NULL
2,	'К01-3-У1',	11,	1,		NULL
3,	'К01-3-ХЛ',     11,	146,		NULL
4,	'К01-6-У3',     9,	3,		NULL
5,	'К01-6-У1',     9,	1,		NULL
6,	'К01-6-ХЛ',	9,	146,		NULL
7,	'К01-10-У3',	8,	3,		0.17
8,	'К01-10-У1',	8,	1,		0.17
9,	'К01-10-ХЛ',    8,	146,		0.17
10,	'К01-35-У3',	7,	3,		0.20
11,	'К01-35-У1',	7,	1,		0.20
12,	'К01-35-ХЛ',	7,	146,		0.20
13,	'К02-3-У3',	11,	3,		NULL
14,	'К02-3-У1',	11,	1,		NULL
15,	'К02-3-ХЛ', 	11,	146,  		NULL
16,	'К02-6-У3',	9,	3,   		NULL
17,	'К02-6-У1',	9,	1,   		NULL
18,	'К02-6-ХЛ', 	9,	146,   		NULL
19,	'К02-10-У3',	8,	3,  		0.20
20,	'К02-10-У1',	8,	1,  		0.20
21,	'К02-10-ХЛ', 	8,	146,  		0.20
22,	'К02-35-У3',	7,	3,  		0.23
23,	'К02-35-У1',	7,	1,   		0.23
24,	'К02-35-ХЛ', 	7,	146,   		0.23
25,	'К03-3-У3',   	11,	3,   		NULL
26,	'К03-3-У1',	11,	1,   		NULL
27,	'К03-3-ХЛ', 	11,	146,   		NULL
28,	'К03-6-У3',	9,	3,   		NULL
29,	'К03-6-У1',	9,	1,  		NULL
30,	'К03-6-ХЛ', 	9,	146,   		NULL
31,	'К03-10-У3',	8,	3,   		NULL
32,	'К03-10-У1',	8,	1,   		NULL
33,	'К03-10-ХЛ', 	8,	146,   		NULL
34,	'К03-35-У3',	7,	3,   		NULL
35,	'К03-35-У1',	7,	1,   		NULL
36,	'К03-35-ХЛ', 	7,	146,   		NULL
37,	'К04-10-У3',	8,	3,   		0.54
38,	'К06-10-У2',	8,	2,   		0.19
39,	'К07-10-У2',	8,	2,   		0.21
40,	'К08-10-У2',	8,	2,   		0.33
]]!>	     
SET IDENTITY_INSERT Спр_контактов_предохранителей ON                                                                                           
<![WithRows[insert into Спр_контактов_предохранителей(Код_типа_контакта,Описание,Код_класса_напряжения,ClimaticAllocationID,Масса) values ($$CDATA0)]]!>	                                                                                                                               
SET IDENTITY_INSERT Спр_контактов_предохранителей OFF
GO
-- Добавляем Справочник патронов предохранителей
CREATE TABLE Спр_патронов_предохранителей
(
        Код_типа_патрона		int IDENTITY(1,1),
        Описание			nvarchar(50) NOT NULL,
	Код_класса_напряжения		int NOT NULL,
	Inom				float,
	Inom_откл			float,
        Длина				float,
        Диаметр				float,
        Масса				float,
	ClimaticAllocationID	 	int,
	Скрытое				bit,
        PRIMARY KEY (Код_типа_патрона)
 )
exec sp_addextendedproperty 'MS_Description', N'Типы патронов предохранителей', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей'
exec sp_addextendedproperty 'MS_Description', N'Код типа патрона', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Код_типа_патрона'
exec sp_addextendedproperty 'MS_Description', N'Маркировка типа контакта', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Описание'
exec sp_addextendedproperty 'MS_Description', N'Класс напряжения', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Код_класса_напряжения'
exec sp_addextendedproperty 'MS_Description', N'Номинальный ток патрона, А', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Inom'
exec sp_addextendedproperty 'MS_Description', N'Номинальный ток отключания, кА', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Inom_откл'
exec sp_addextendedproperty 'MS_Description', N'Длина патрона, мм', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Длина'
exec sp_addextendedproperty 'MS_Description', N'Диаметр колпака, мм', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Диаметр'
exec sp_addextendedproperty 'MS_Description', N'Масса, кг', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Масса'
exec sp_addextendedproperty 'MS_Description', N'Климатическое исполнение и категория размещения', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'ClimaticAllocationID'
exec sp_addextendedproperty 'MS_Description', N'Признак видимости записи', 'user', 'dbo', 'Table', 'Спр_патронов_предохранителей', 'Column', 'Скрытое'
GO
ALTER TABLE Спр_патронов_предохранителей
        ADD FOREIGN KEY (Код_класса_напряжения)
                              REFERENCES Справочник_классов_напряжения

ALTER TABLE Спр_патронов_предохранителей
  ADD FOREIGN KEY (ClimaticAllocationID)
    REFERENCES DictClimaticAllocations
GO
-- Заполним справочник патронов данными
<![CDATA[                                         
--Код	Описание		UnomID	Inom	Inom_откл	Длина	Диаметр
1,	'ПТ 1.1-10-2-12,5',	8,	2,	12.5,		412,	55
2,	'ПТ 1.1-10-3,2-12,5',	8,	3.2,	12.5,		412,	55	
3,	'ПТ 1.1-10-5-12,5',	8,	5,	12.5,		412,	55	
4,	'ПТ 1.1-10-10-12,5',	8,	10,	12.5,		412,	55	
5,	'ПТ 1.1-10-16-12,5',	8,	16,	12.5,		412,	55	
6,	'ПТ 1.1-10-20-12,5',	8,	20,	12.5,		412,	55	
7,	'ПТ 1.1-10-31,5-12,5',	8,	31.5,	12.5,		412,	55	
8,	'ПТ 1.1-10-2-31,5',	8,	2,	31.5,		412,	55	
9,	'ПТ 1.1-10-3,2-31,5',	8,	3.2,	31.5,		412,	55	
10,	'ПТ 1.1-10-5-31,5',	8,	5,	31.5,		412,	55	
11,	'ПТ 1.1-10-10-31,5',	8,	10,	31.5,		412,	55	
12,	'ПТ 1.1-10-16-31,5',	8,	16,	31.5,		412,	55	
13,	'ПТ 1.1-10-20-31,5',	8,	20,	31.5,		412,	55	
14,	'ПТ 1.1-10-31,5-31,5',	8,	31.5,	31.5,		412,	55	
15,	'ПТ 1.1-6-2-20',	9,	2,	20,		312,	55	
16,	'ПТ 1.1-6-3,2-20',	9,	3.2,	20,		312,	55	
17,	'ПТ 1.1-6-5-20',	9,	5,	20,		312,	55	
18,	'ПТ 1.1-6-10-20',	9,	10,	20,		312,	55	
19,	'ПТ 1.1-6-16-20',	9,	16,	20,		312,	55	
20,	'ПТ 1.1-6-20-20',	9,	20,	20,		312,	55	
21,	'ПТ 1.1-6-31,5-20',	9,	31.5,	20,		312,	55	
22,	'ПТ 1.1-6-2-40',	9,	2,	40,		312,	55	
23,	'ПТ 1.1-6-3,2-40',	9,	3.2,	40,		312,	55	
24,	'ПТ 1.1-6-5-40',	9,	5,	40,		312,	55	
25,	'ПТ 1.1-6-10-40',	9,	10,	40,		312,	55	
26,	'ПТ 1.1-6-16-40',	9,	16,	40,		312,	55	
27,	'ПТ 1.1-6-20-40',	9,	20,	40,		312,	55	
28,	'ПТ 1.1-6-31,5-40',	9,	31.5,	40,		312,	55	
30,	'ПТ 1.2-10-31,5-12,5',	8,	31.5,	12.5,		464,	72	
31,	'ПТ 1.2-10-40-12,5',	8,	40,	12.5,		464,	72	
32,	'ПТ 1.2-10-50-12,5',	8,	50,	12.5,		464,	72	
33,	'ПТ 1.2-10-31,5-31,5',	8,	31.5,	31.5,		464,	72	
34,	'ПТ 1.2-10-40-31,5',	8,	40,	31.5,		464,	72	
35,	'ПТ 1.2-10-50-31,5',	8,	50,	31.5,		464,	72	
36,	'ПТ 1.2-6-31,5-31,5',	9,	31.5,	31.5,		364,	72	
37,	'ПТ 1.2-6-40-31,5',	9,	40,	31.5,		364,	72	
38,	'ПТ 1.2-6-50-31,5',	9,	50,	31.5,		364,	72	
39,	'ПТ 1.2-6-80-31,5',	9,	80,	31.5,		364,	72	
40,	'ПТ 1.2-6-31,5-20',	9,	31.5,	20,		364,	72	
41,	'ПТ 1.2-6-40-20',	9,	40,	20,		364,	72	
42,	'ПТ 1.2-6-50-20',	9,	50,	20,		364,	72	
43,	'ПТ 1.2-6-80-20',	9,	80,	20,		364,	72	
44,	'ПТ 1.3-10-80-12,5',	8,	80,	12.5,		464,	72	
45,	'ПТ 1.3-10-100-12,5',	8,	100,	12.5,		464,	72	
46,	'ПТ 1.3-10-80-20',	8,	80,	20,		464,	72	
47,	'ПТ 1.3-10-100-20',	8,	100,	20,		464,	72	
48,	'ПТ 1.3-10-80-31,5',	8,	80,	31.5,		464,	72	
49,	'ПТ 1.3-10-100-31,5',	8,	100,	31.5,		464,	72	
50,	'ПТ 1.3-6-80-20',	9,	80,	20,		364,	72	
51,	'ПТ 1.3-6-100-20',	9,	100,	20,		364,	72	
52,	'ПТ 1.3-6-160-20',	9,	160,	20,		364,	72	
53,	'ПТ 1.3-6-80-31,5',	9,	80,	31.5,		364,	72	
54,	'ПТ 1.3-6-100-31,5',	9,	100,	31.5,		364,	72	
55,	'ПТ 1.3-6-160-31,5',	9,	160,	31.5,		364,	72	
56,	'ПТ 1.4-10-100-12,5',	8,	100,	12.5,		464,	72	
57,	'ПТ 1.4-10-160-12,5',	8,	160,	12.5,		464,	72	
58,	'ПТ 1.4-10-200-12,5',	8,	200,	12.5,		464,	72	
59,	'ПТ 1.4-10-100-20',	8,	100,	20,		464,	72	
60,	'ПТ 1.4-10-160-20',	8,	160,	20,		464,	72	
61,	'ПТ 1.4-10-200-20',	8,	200,	20,		464,	72	
62,	'ПТ 1.4-10-100-31,5',	8,	100,	31.5,		464,	72	
63,	'ПТ 1.4-10-160-31,5',	8,	160,	31.5,		464,	72	
64,	'ПТ 1.4-10-200-31,5',	8,	200,	31.5,		464,	72	
65,	'ПТ 1.4-6-160-20',	9,	160,	20,		364,	72	
66,	'ПТ 1.4-6-200-20',	9,	200,	20,		364,	72	
67,	'ПТ 1.4-6-315-20',	9,	315,	20,		364,	72	
68,	'ПТ 1.4-6-160-31,5',	9,	160,	31.5,		364,	72	
69,	'ПТ 1.4-6-200-31,5',	9,	200,	31.6,		364,	72	
70,	'ПТ 1.4-6-315-31,5',	9,	315,	31.7,		364,	72	
]]!>
SET IDENTITY_INSERT Спр_патронов_предохранителей ON                                                                                           
<![WithRows[insert into Спр_патронов_предохранителей(Код_типа_патрона,Описание,Код_класса_напряжения,Inom,Inom_откл,Длина,Диаметр) values ($$CDATA0)]]!>  	
SET IDENTITY_INSERT Спр_патронов_предохранителей OFF                                                                                           
GO
-- Добавляем поля в Справочник предохранителей
alter table Справочник_типов_предохранителей add Код_типа_патрона int
alter table Справочник_типов_предохранителей add Код_типа_контакта int
alter table Справочник_типов_предохранителей add Код_типа_изолятора int
alter table Справочник_типов_предохранителей add Код_документа_структуры int
GO
alter table Справочник_типов_предохранителей add foreign key(Код_типа_патрона) references Спр_патронов_предохранителей
alter table Справочник_типов_предохранителей add foreign key(Код_типа_контакта) references Спр_контактов_предохранителей
alter table Справочник_типов_предохранителей add foreign key(Код_типа_изолятора) references Справочник_опорных_изоляторов
alter table Справочник_типов_предохранителей add foreign key(Код_документа_структуры) references DictDocuments
GO
-- Добавляем поля в Предохранитель (Inom и тип патрона) - как дублирующиеся со справочником поля
alter table Предохранитель add Inom float
alter table Предохранитель add Код_типа_патрона int
GO
alter table Предохранитель add foreign key(Код_типа_патрона) references Спр_патронов_предохранителей
GO
-- Добавляем документы в Справочник_разъединителей
alter table Справочник_разъединителей add Код_документа_структуры int
alter table Справочник_разъединителей add Код_документа_чертежа int
GO
alter table Справочник_разъединителей add foreign key(Код_документа_структуры) references DictDocuments
alter table Справочник_разъединителей add foreign key(Код_документа_чертежа) references DictDocuments
GO
-- Характеристики полей
----- вынесем описание этих полей в таблицу '<any>', ибо их много
delete from Характеристики_полей where 
	   Имя_поля = 'Код_документа_структуры' 
	or Имя_поля = 'Код_документа_чертежа'
	or (Имя_поля = 'Код_типа_объекта' and Используемая_таблица = 'Справочник_типов_объектов')-- и так есть в '<any>'
GO
update Характеристики_полей set Descriptive = 1 where Имя_поля = 'Код_типа_объекта'
GO
<![CDATA[                                         
--Имя_таблицы				Имя_поля			Используемое_поле	Используемая_таблица		Обозначение						SpecialType
'Справочник_типов_предохранителей',	'Код_типа_патрона',		'Описание',		'Спр_патронов_предохранителей',	'Тип патрона',						NULL
'Справочник_типов_предохранителей',	'Код_типа_контакта',		'Описание',		'Спр_контактов_предохранителей','Тип контакта',						NULL
'Справочник_типов_предохранителей',	'Код_типа_изолятора',		'Описание',		'Справочник_опорных_изоляторов','Тип изолятора',					NULL
'<any>',				'Код_документа_структуры',	'ID',			'DictDocuments',		'Структура условного обозначения',			1
'<any>',				'Код_документа_чертежа',	'ID',			'DictDocuments',		'Общий вид с габаритными и монтажными размерами',	1
]]!>	                                                                                                
<![WithRows[insert into Характеристики_полей(Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,SpecialType) values ($$CDATA0)]]!>  	