---- GetOwnerOrgID - более идеологически верно
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetOwnerOrgID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[GetOwnerOrgID]
GO
create function GetOwnerOrgID(@ObjectID integer)
returns integer
as
begin
  declare @res integer
  set @res = NULL
  while (@ObjectID is not NULL) AND (@res is null)
  begin
    select @ObjectID = Код_объекта_владельца, @res = Код_организации_владельца from Объект where Код_объекта = @ObjectID
  end
  return @res
end
GO
-- AHTUNG! Здесь будем сильно менять модель Потребителя ----
---- Переносим Точки присоединения в Заявку
declare @table_name nvarchar(50)
set @table_name=N'PowerOutlets'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where xtype = 'F' AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

alter table PowerOutlets add TCApplicationID int null
GO

  -- добавляем PowerOutlets для тех потребителей, у которых больше, чем по одной заявке, и выставляем им соответствующий номер заявки
insert into PowerOutlets
(
	ConsumerID, 
	Name, 
	Inom, 
	Unom, 
	TCApplicationID
)
select 
	PowerOutlets.ConsumerID, 
	PowerOutlets.Name,
	PowerOutlets.Inom, 
	PowerOutlets.Unom, 
	TCApplications.TCApplicationID
	from PowerOutlets
	inner join TCApplications on TCApplications.ConsumerID = PowerOutlets.ConsumerID
    where exists(select ConsumerID from TCApplications where ConsumerID = PowerOutlets.ConsumerID group by ConsumerID having count(*) > 1)
GO

delete from PowerOutlets where TCApplicationID is null and exists (select 1 from PowerOutlets po2 where po2.ConsumerID = PowerOutlets.ConsumerID and TCApplicationID is not null)
GO

  -- выставляем номер заявки остальных PowerOutlets, принадлежащим потребителям с одной заявкой
update PowerOutlets set TCApplicationID = TCApplications.TCApplicationID from TCApplications where TCApplications.ConsumerID = PowerOutlets.ConsumerID and PowerOutlets.TCApplicationID is null
GO

  -- и наконец удаляем те PowerOutlets, которые принадлежат потребителям без заявок
delete from PowerOutlets where TCApplicationID is null
GO

alter table PowerOutlets alter column TCApplicationID int not null
GO

alter table PowerOutlets drop column ConsumerID
GO

ALTER TABLE PowerOutlets
	ADD FOREIGN KEY (TCApplicationID)
        REFERENCES TCApplications (TCApplicationID)
	ON DELETE CASCADE
GO

---- Обрабатываем SpecifiedPowers
declare @table_name nvarchar(50)
set @table_name=N'SpecifiedPowers'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where (xtype = 'F' OR xtype = 'PK') AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

alter table SpecifiedPowers add TCApplicationID int null
GO

  -- добавляем SpecifiedPowers для тех потребителей, у которых больше, чем по одной заявке, и выставляем им соответствующий номер заявки
insert into SpecifiedPowers(ConsumerID, ItemNum, Description, P, TCApplicationID)
	select SpecifiedPowers.ConsumerID, SpecifiedPowers.ItemNum + TCApplications.TCApplicationID,
		SpecifiedPowers.Description, SpecifiedPowers.P, TCApplications.TCApplicationID
	from SpecifiedPowers
	inner join TCApplications on TCApplications.ConsumerID = SpecifiedPowers.ConsumerID
    where exists(select ConsumerID from TCApplications where ConsumerID = SpecifiedPowers.ConsumerID group by ConsumerID having count(*) > 1)
GO

delete from SpecifiedPowers where TCApplicationID is null and exists (select 1 from SpecifiedPowers sp2 where sp2.ConsumerID = SpecifiedPowers.ConsumerID and TCApplicationID is not null)
GO

  -- выставляем номер заявки остальных SpecifiedPowers, принадлежащим потребителям с одной заявкой
update SpecifiedPowers set TCApplicationID = TCApplications.TCApplicationID from TCApplications where TCApplications.ConsumerID = SpecifiedPowers.ConsumerID and SpecifiedPowers.TCApplicationID is null
GO

  -- и наконец удаляем те SpecifiedPowers, которые принадлежат потребителям без заявок
delete from SpecifiedPowers where TCApplicationID is null
GO

alter table SpecifiedPowers alter column TCApplicationID int not null
GO

alter table SpecifiedPowers drop column ConsumerID
GO

ALTER TABLE SpecifiedPowers ADD PRIMARY KEY (TCApplicationID, ItemNum)
GO

ALTER TABLE SpecifiedPowers
	ADD FOREIGN KEY (TCApplicationID)
        REFERENCES TCApplications (TCApplicationID)
	ON DELETE CASCADE
GO

update Объект set В_проекте = 1 from Потребитель where Код_потребителя = Код_объекта and Не_подключен = 1
GO

update Потребитель set Наименование_объекта = Наименование from Объект where Код_объекта = Код_потребителя
GO

-- делаем из Справочника_типов_потребителей ConsumingObjectTypes
declare @table_name nvarchar(50)
set @table_name=N'TCApplications'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where (xtype = 'F') AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

declare @table_name nvarchar(50)
set @table_name=N'Тариф_Прибор_учета'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where (xtype = 'F' OR xtype = 'PK') AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

declare @table_name nvarchar(50)
set @table_name=N'Прибор_учета'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where (xtype = 'F' OR xtype = 'PK') AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

declare @table_name nvarchar(50)
set @table_name=N'Расчеты_потребителей'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where xtype = 'F' AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

declare @table_name nvarchar(50)
set @table_name=N'Тарифы_потребителей'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where xtype = 'F' AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

declare @table_name nvarchar(50)
set @table_name=N'Потребитель'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where (xtype = 'F' OR xtype = 'PK') AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

alter table Справочник_типов_потребителей drop column Характеристика_Ap
alter table Справочник_типов_потребителей drop column Характеристика_Bp
alter table Справочник_типов_потребителей drop column Характеристика_Cp
alter table Справочник_типов_потребителей drop column Характеристика_Aq
alter table Справочник_типов_потребителей drop column Характеристика_Bq
alter table Справочник_типов_потребителей drop column Характеристика_Cq
alter table Справочник_типов_потребителей drop column Суточный_график
EXEC sp_rename 'Справочник_типов_потребителей.Код_типа_потребителя','TypeID','COLUMN'
EXEC sp_rename 'Справочник_типов_потребителей.Описание','Description','COLUMN'
EXEC sp_rename 'Справочник_типов_потребителей.Категория','Category','COLUMN'
EXEC sp_rename 'Справочник_типов_потребителей','ConsumingObjectTypes'
GO

CREATE TABLE ConsumingObjects
(
	ID		int identity(1,1),
	ParentID	int,
	Address		nvarchar(150),
	TypeID		int NOT NULL,	 
	Name		nvarchar(100) NOT NULL,
	Category 	int,
	PRIMARY KEY(ID)
)
GO

CREATE TABLE ConsumingObjectConsumers
(
	ConsumingObjectID	int NOT NULL,
	ConsumerID		int NOT NULL,
	IsStandby 		bit,
	PRIMARY KEY(ConsumingObjectID,ConsumerID)	
)
GO

set identity_insert ConsumingObjects on
insert into ConsumingObjects 
	(
		ID,
		Name,
		ParentID,
		Address,
		TypeID,
		Category
	)
	select
		Код_объекта,
		Наименование_объекта,
		Код_объекта_владельца,
		Адрес,
		Код_типа_потребителя,
		Категория
	from Потребитель
 	inner join Объект on Код_объекта = Код_потребителя
set identity_insert ConsumingObjects off
GO
---- удаляем те ParentID из ConsumingObjects, которые не являются Потребителем
update ConsumingObjects set ParentID = NULL where not exists(select 1 from Потребитель where Код_потребителя = ParentID)
GO

insert into ConsumingObjectConsumers(ConsumingObjectID, ConsumerID) select Код_потребителя, Код_потребителя from Потребитель
GO

---- Добавление надкласса к Организации (и к Физическому лицу)
CREATE TABLE LegalEntities
(
	LegalEntityID	int identity(1,1),
	IsIndividual	bit NOT NULL default 0,
	OldIndividualID	int NULL,
	PRIMARY KEY(LegalEntityID)
)
GO

set identity_insert LegalEntities on
insert into LegalEntities(LegalEntityID) select Код_организации from Организация
set identity_insert LegalEntities off
GO

declare @table_name nvarchar(50)
set @table_name=N'Персонал'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where xtype = 'F' AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

declare @table_name nvarchar(50)
set @table_name=N'Объект'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where xtype = 'F' AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

declare @table_name nvarchar(50)
set @table_name=N'Организация'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where (xtype = 'F' OR xtype = 'PK') AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

EXEC sp_rename 'Организация.Код_организации','Код_организации_old','COLUMN'
GO

alter table Организация add Код_организации int
GO

update Организация set Код_организации = Код_организации_old
alter table Организация alter column Код_организации int not null
alter table Организация drop column Код_организации_old
GO

  -- PK и FK для Организации, FK для Объекта и Персонала
alter table Организация add PRIMARY KEY (Код_организации)
GO

ALTER TABLE Организация WITH NOCHECK
        ADD FOREIGN KEY (Код_организации)
                              REFERENCES LegalEntities(LegalEntityID) ON DELETE CASCADE

ALTER TABLE Организация
        ADD FOREIGN KEY (Код_организационно_правовой_формы)
                              REFERENCES Справочник_организационно_правовых_форм

ALTER TABLE Персонал
        ADD FOREIGN KEY (Код_организации)
                              REFERENCES Организация

ALTER TABLE Объект
        ADD FOREIGN KEY (Код_организации_владельца)
                              REFERENCES Организация

ALTER TABLE Объект
        ADD FOREIGN KEY (Код_обслуживающей_организации)
                              REFERENCES Организация

ALTER TABLE Объект
        ADD FOREIGN KEY (Код_типа_объекта)
                              REFERENCES Справочник_типов_объектов

ALTER TABLE Объект
        ADD FOREIGN KEY (Код_диспетчерского_управления)
                              REFERENCES Диспетчерское_управление

ALTER TABLE Объект WITH NOCHECK 
        ADD FOREIGN KEY (Код_объекта_владельца)
                              REFERENCES Объект

GO

insert into LegalEntities(IsIndividual, OldIndividualID)
	select 1, IndividualID from Individuals
GO
declare @table_name nvarchar(50)
set @table_name=N'Individuals'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where (xtype = 'F' OR xtype = 'PK') AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

EXEC sp_rename 'Individuals.IndividualID','IndividualID_old','COLUMN'
GO

alter table Individuals add IndividualID int
GO

update Individuals set IndividualID = LegalEntityID from LegalEntities where IndividualID_old = OldIndividualID
GO

alter table Individuals alter column IndividualID int not null
alter table Individuals drop column IndividualID_old
GO

alter table Individuals add primary key(IndividualID)
GO

alter table Individuals add foreign key(IndividualID) references LegalEntities(LegalEntityID) on delete cascade
GO

update Потребитель set Код_физического_лица = LegalEntityID from LegalEntities where Код_физического_лица = OldIndividualID
GO

alter table LegalEntities drop column OldIndividualID
GO

EXEC sp_rename 'Потребитель.Код_физического_лица','LegalEntityID','COLUMN'
GO

update Потребитель set LegalEntityID = dbo.GetOwnerOrgID(Код_потребителя) where LegalEntityID is null AND dbo.GetOwnerOrgID(Код_потребителя) is not null
GO

update Справочник_типов_объектов set Описание = 'Энергопринимающее устройство', Имя_папки = 'Энергопринимающее устройства' where Код_типа_объекта = 1001
GO

---- создаём таблицу для Договора на электроснабжения
CREATE TABLE SupplyContracts
(
	ContractID 		int identity(1,1),
	ContractNumber		nvarchar(50) NOT NULL,
	UseDirectAccount        bit,
	LegalEntityID		int,
	PRIMARY KEY(ContractID)
)
GO

ALTER TABLE SupplyContracts ADD FOREIGN KEY (LegalEntityID) REFERENCES LegalEntities(LegalEntityID)
GO

---- Всё, что касается Тарифов и оплат - переносим в Договор на электросабжение
  -- создаём Договор для потребителей, у которых есть одна из этих связей
set IDENTITY_INSERT SupplyContracts ON
insert into SupplyContracts(ContractID, ContractNumber, UseDirectAccount, LegalEntityID) 
	select distinct Потребитель.Код_потребителя, 'автоматически перенесенные данные', Прямой_расчет, Потребитель.LegalEntityID
	from Потребитель 
		inner join Прибор_учета on Прибор_учета.Код_потребителя  =  Потребитель.Код_потребителя
insert into SupplyContracts(ContractID, ContractNumber, UseDirectAccount, LegalEntityID) 
	select distinct Потребитель.Код_потребителя, 'автоматически перенесенные данные', Прямой_расчет, Потребитель.LegalEntityID
	from Потребитель 
		inner join Расчеты_потребителей on Расчеты_потребителей.Код_потребителя  =  Потребитель.Код_потребителя
	where Потребитель.Код_потребителя not in (select ContractID from SupplyContracts)

insert into SupplyContracts(ContractID, ContractNumber, UseDirectAccount, LegalEntityID) 
	select distinct Потребитель.Код_потребителя, 'автоматически перенесенные данные', Прямой_расчет, Потребитель.LegalEntityID
	from Потребитель 	
		inner join Тарифы_потребителей on Тарифы_потребителей.Код_потребителя  =  Потребитель.Код_потребителя
	where Потребитель.Код_потребителя not in (select ContractID from SupplyContracts)

set IDENTITY_INSERT SupplyContracts OFF
GO

alter table Потребитель add SupplyContractID int
GO

update Потребитель set Потребитель.SupplyContractID = SupplyContracts.ContractID from SupplyContracts where SupplyContracts.ContractID = Потребитель.Код_потребителя
GO

EXEC sp_rename 'Прибор_учета.Код_потребителя', 'SupplyContractID', 'COLUMN'
EXEC sp_rename 'Расчеты_потребителей.Код_потребителя', 'SupplyContractID', 'COLUMN'
EXEC sp_rename 'Тарифы_потребителей.Код_потребителя', 'SupplyContractID', 'COLUMN'
EXEC sp_rename 'Тариф_Прибор_учета.Код_потребителя', 'SupplyContractID', 'COLUMN'
GO

  -- создаёт обратно ключи в обработанных таблицах
ALTER TABLE Прибор_учета ADD PRIMARY KEY (Код_прибора, SupplyContractID)
ALTER TABLE Тариф_Прибор_учета ADD PRIMARY KEY (Код_тарифа_потребителя, Код_прибора, SupplyContractID)
GO

ALTER TABLE Прибор_учета
        ADD FOREIGN KEY (SupplyContractID)
                              REFERENCES SupplyContracts
                              ON DELETE CASCADE

ALTER TABLE Прибор_учета WITH NOCHECK
        ADD FOREIGN KEY (Код_прибора)
                              REFERENCES Измерительный_прибор

ALTER TABLE Расчеты_потребителей
        ADD FOREIGN KEY (SupplyContractID)
                              REFERENCES SupplyContracts
                                                        
ALTER TABLE Тарифы_потребителей
        ADD FOREIGN KEY (SupplyContractID)
                              REFERENCES SupplyContracts

ALTER TABLE Тарифы_потребителей
        ADD FOREIGN KEY (Код_тарифа)
                              REFERENCES Справочник_тарифов

ALTER TABLE Тариф_Прибор_учета
        ADD FOREIGN KEY (Код_тарифа_потребителя)
                              REFERENCES Тарифы_потребителей
ALTER TABLE Тариф_Прибор_учета
        ADD FOREIGN KEY (Код_прибора,SupplyContractID)
                              REFERENCES Прибор_учета

GO

  -- Часть технических характеристик переносим в TCApplication, для этого сначала добавляем недостающие поля
alter table TCApplications add Pmax float                          	
alter table TCApplications add Qmax float
alter table TCApplications add Pmin float
alter table TCApplications add Qmin float
alter table TCApplications add Unom float
GO

update TCApplications set Pmax = Потребитель.Pnom, Qmax = Потребитель.Qnom, Pmin = Потребитель.Pmin, Qmin = Потребитель.Qmin, Unom = Потребитель.Unom from Потребитель where Код_потребителя = ConsumerID
GO 

alter table TCApplications add LegalEntityID int
GO

update TCApplications set TCApplications.LegalEntityID = Потребитель.LegalEntityID from Потребитель where ConsumerID = Потребитель.Код_потребителя
GO

EXEC sp_rename 'TCApplications.ConsumerID', 'ConsumingObjectID', 'COLUMN'
GO
-- удаляем лишние поля из Потребителя
alter table Потребитель drop column Не_подключен
alter table Потребитель drop column Является_физлицом 	
alter table Потребитель drop column LegalEntityID
alter table Потребитель drop column Код_типа_потребителя
alter table Потребитель drop column Адрес
alter table Потребитель drop column Прямой_расчет
alter table Потребитель drop column Категория
alter table Потребитель drop column Наименование_объекта
GO

---- Создать связи для Потребителя
ALTER TABLE Потребитель add primary key(Код_потребителя)

ALTER TABLE Потребитель WITH NOCHECK
        ADD FOREIGN KEY (Код_потребителя)
                              REFERENCES Объект ON DELETE CASCADE

ALTER TABLE Потребитель 
	ADD FOREIGN KEY (SupplyContractID)
				REFERENCES SupplyContracts

GO

---- Создать связи в ConsumingObjectConsumers
alter table ConsumingObjectConsumers
	add foreign key(ConsumingObjectID)
	references ConsumingObjects(ID) 

alter table ConsumingObjectConsumers
	add foreign key(ConsumerID)
	references Потребитель (Код_потребителя)
GO

---- Создать связи в ConsumingObjects
alter table ConsumingObjects 
	add foreign key (ParentID)
	references ConsumingObjects(ID)

alter table ConsumingObjects 
	add foreign key (TypeID)
	references ConsumingObjectTypes(TypeID)
GO

---- Создать связи в TCApplicationAttachments 
declare @table_name nvarchar(50)
set @table_name=N'TCApplicationAttachments'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where xtype = 'F' AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

ALTER TABLE TCApplicationAttachments
	ADD FOREIGN KEY (TCApplicationID) 
	REFERENCES TCApplications (TCApplicationID)
	ON DELETE CASCADE

ALTER TABLE TCApplicationAttachments
	ADD FOREIGN KEY (AttachmentTypeID)
	REFERENCES TCApplicationAttachmentTypes (TCApplicationAttachmentTypeID)
GO
---- Заодно иерархическое ТУ изменим на иерархическую Заявку
declare @table_name nvarchar(50)
set @table_name=N'TCSpecs'
declare @strSQL nvarchar(1024)
set @strSQL=''
select @strSQL = @strSQL + ' ALTER TABLE ' + @table_name + ' DROP CONSTRAINT '+ object_name(FK_Tab.id) 
  from sysobjects FK_Tab 
  where xtype = 'F' AND object_id(@table_name)=parent_obj 

if @strSQL<>''  exec (@strSQL)
GO

alter table TCSpecs drop column ParentSpecID
GO

alter table TCApplications add ParentApplicationID int NULL
GO

---- Создать связи для TCApplications
ALTER TABLE TCApplications
	ADD FOREIGN KEY (LegalEntityID)
	REFERENCES LegalEntities  (LegalEntityID)

ALTER TABLE TCApplications
	ADD FOREIGN KEY (ConsumingObjectID)
	REFERENCES ConsumingObjects (ID)

ALTER TABLE TCApplications
	ADD FOREIGN KEY (TCApplicationCauseID)
	REFERENCES TCApplicationCauses  (TCApplicationCauseID)

ALTER TABLE TCApplications
	ADD FOREIGN KEY (ParentApplicationID)
	REFERENCES TCApplications
GO

---- Создать связи для TCSpecs
ALTER TABLE TCSpecs
	ADD FOREIGN KEY (SpecID)
	REFERENCES TCApplications(TCApplicationID)
	ON DELETE CASCADE
        ON UPDATE CASCADE
GO
-- Характеристики полей для физических лиц
SET IDENTITY_INSERT Характеристики_полей ON
INSERT INTO Характеристики_полей(Код_характеристики,Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,Описание,Единица_измерения) 
	VALUES (439,'Individuals','Name',NULL,NULL,'Ф.И.О.', NULL,NULL)
INSERT INTO Характеристики_полей(Код_характеристики,Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,Описание,Единица_измерения) 
	VALUES (440,'Individuals','PassportNumber',NULL,NULL,'Серия и номер паспорта', NULL,NULL)
INSERT INTO Характеристики_полей(Код_характеристики,Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,Описание,Единица_измерения) 
	VALUES (441,'Individuals','PassportIssuer',NULL,NULL,'Кем выдан', NULL,NULL)
INSERT INTO Характеристики_полей(Код_характеристики,Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,Описание,Единица_измерения) 
	VALUES (442,'Individuals','PassportDate',NULL,NULL,'Дата выдачи', NULL,NULL)
INSERT INTO Характеристики_полей(Код_характеристики,Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,Описание,Единица_измерения) 
	VALUES (443,'Individuals','RegistrationAddress',NULL,NULL,'Адрес регистрации', NULL,NULL)
INSERT INTO Характеристики_полей(Код_характеристики,Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,Описание,Единица_измерения) 
	VALUES (444,'Individuals','Address',NULL,NULL,'Фактический адрес', NULL,NULL)
INSERT INTO Характеристики_полей(Код_характеристики,Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,Описание,Единица_измерения) 
	VALUES (445,'Individuals','ContactInfo',NULL,NULL,'Контактная информация', NULL,NULL)
INSERT INTO Характеристики_полей(Код_характеристики,Имя_таблицы,Имя_поля,Используемое_поле,Используемая_таблица,Обозначение,Описание,Единица_измерения) 
	VALUES (446,'Individuals','INN',NULL,NULL,'ИНН', NULL,NULL)
SET IDENTITY_INSERT Характеристики_полей OFF