FIAS MSSQLSERVER-en datu-basean kargatzea inprobisatutako (SQLXMLBULKLOAD) tresnak erabiliz. Nola (ziurrenik) ez litzateke egin behar

Epigrafea:
"Mailu bat eskuetan duzunean, inguruan duzun guztia iltze itxura du".

FIAS MSSQLSERVER-en datu-basean kargatzea inprobisatutako (SQLXMLBULKLOAD) tresnak erabiliz. Nola (ziurrenik) ez litzateke egin behar
Nolabait, aspaldi, badirudi, joan den ostiralean, bulegoan zehar ibiltzean, ugazaba madarikatuak kezkatu egin ziren alferkerian eta katuak kontenplatzen ari nintzelako.

— Ez al zenuke FIAS deskargatu behar, lagun maitea! - esan zuten agintariek. – Gure negozio-unitateei ez zaielako gustatzen hura kargatzeko prozesua. Denbora asko behar da, diotenez, produktuaren zerbitzaria kargatu eta kargatzeko, eta kargatzeko prozesua idatzi zuen tipoak herenegun utzi zuen, duela hiru urte bezala.
Gainera, han dena aspaldi berritu behar da, beraz, aurrera, sortu zuretzako oinarri bat eta ziurtatu FIASA aldian-aldian betetzen dela. Dena, esaten den bezala, ez dut atzeratuko!

Hemen esan behar dut urrutiko harremana dudala programazioarekin, zeren... DBA bat gehiago naiz. Nahiz eta, bestalde, aurrez prestatutako informazio sorta handiak kargatzea DBA baten zeregina den, habia pa?

«Tira... Orain egingo dugu», esan nien nagusiei, eta FIASAren webgunera abiatu nintzen, mahukak bilduz.

"BIDEZ! Bai, dbf dago! — Pentsatu nuen, eskuak alaitasunez igurtziz, aldi berean, “de facto” zip artxibo estandar baten gabeziaz, eta, alderantziz, aspaldiko hildako arj eta jabedunaren presentziaz, barkatu, ireki, noski. 7zip [baina oraindik ezin da deskonprimitu powershell erabiliz Zabaldu -Artxiboa]. Horiek. Ezin duzu deskargatu eta deskargatu powershell hutsarekin. Zerbitzarian mota guztietako kakarrak pilatu beharko dituzu. Dena den.

Dbf fitxategiak paraleloki kargatzeko tresnak idatzi ditut orain dela hainbat urtez, beraz, ez luke arazorik izan behar.

Dbfs deskonprimitu nuen, deskargatzeko programa abiarazi nuen, eta datuak kargatzen ari ziren bitartean, plaka bereizi "ia berdinak" batean itsatsi zituen script bat zirriborratu nuen, haien jabetzaren arabera.

Datuak deskargatu eta zuzendaritzako bulegora joatekotan nengoen, erramuak biltzera, baina deabruak tiratu ninduen inportazioaren emaitzak ikustera!

FIAS MSSQLSERVER-en datu-basean kargatzea inprobisatutako (SQLXMLBULKLOAD) tresnak erabiliz. Nola (ziurrenik) ez litzateke egin behar

- Aupa. WTF!!!???

FIAS MSSQLSERVER-en datu-basean kargatzea inprobisatutako (SQLXMLBULKLOAD) tresnak erabiliz. Nola (ziurrenik) ez litzateke egin behar

Mahai handiak normalean kargatzen ziren, baina txikiek akatsak zituzten.

Eta horrek guztiak hain triste eta malenkoniatsu bihurtu ninduen, ezen ausardiaz neure burua batu eta procrastinazioa eta nire ardura zuzenak hartu nituen. Benetan ez nuen nahastu nahi hautsitako dbfekin.

Bi egunez atzeratu nuen, eskaerak agortu arte, eta ugazaba berriro zerumugan agertu ziren, «Zer galdetzen ari gara?» galdera sakramentalarekin.

Eta, ezer erantzuteko ezer ez zegoenez, eta oraindik dbf-rekin txikitu nahi ez nuenez, FIAS xml-tik deskargatzea erabaki nuen, batez ere, esaten den bezala, dotorea, modakoa, gaztea delako eta “dbf hilzorian dagoen formatua da. ”.
Honekin, utz iezadazu amaierako sarrera bakarrizketa luzeari eta ekingo diot.

2. epigrafea:
Bai, hori ere posible da. 🙂

Beraz, erabiliz kargatzea erabaki zen SQLXMLBULKLOAD - xml fitxategi egituratuak kargatzeko bereziki diseinatutako liburutegi zoragarria.
Erabili ahal izateko, behar duzu deskargatu eta instalatu SqlXml 4.0 Service Pack 1 (SP1) liburutegia.

FIASen kasuan, berriz, "egitura" ez da bereziki eskatzen. Zeren Bertan dauden fitxategiak ez dira zehazki xml... xml dira, noski, baina, funtsean, datuekin taula lauak dira, fitxategi bakoitzak taula bat dauka.

sql.ru webgunean I aurkituta prozedura spXMLBulkLoad erabiltzaile maitea Mnior, SQL zerbitzaritik haratago ez joateko, eta CLRn SQLXMLBULKLOAD deia idatzi ere ez egiteko.

Hona hemen horren bertsio apur bat aldatuta:

spXMLBulkLoad

USE [FIAS2]
GO

/****** Object:  StoredProcedure [dbo].[spXMLBulkLoad]    Script Date: 13.05.2019 18:05:58 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- Необходимо разрешить Ole Automation Procedures:
	-- EXEC sp_configure 'Ole Automation Procedures', 1; RECONFIGURE WITH OVERRIDE;

-- Пример:
	-- EXEC dbo.spXMLBulkLoad 'Z:PathData.xml','Z:PathSchema.xsd', 'FIAS', 'Z:Patherror.xml'

CREATE PROCEDURE [dbo].[spXMLBulkLoad] (
	 @File		SysName
	,@Schema	SysName
	,@DataBase	SysName	= '<DefaultDataBase>'
	,@ErrorLog	SysName
) AS 
BEGIN 
	DECLARE	 @ErrCode	Int
		,@OLEXMLBulk	Int
		,@ErrMethod		SysName
		,@ErrDescript	NVarChar(4000)
	
	EXEC @ErrCode = sys.sp_OACreate 'SQLXMLBulkLoad.SQLXMLBulkload', @OLEXMLBulk OUT
	IF (@ErrCode = 0) 
	BEGIN
		SET	@DataBase	= 'Provider=SQLOLEDB;Data Source=.;DataBase=' + @DataBase + ';Integrated Security=SSPI'
		EXEC @ErrCode = sys.sp_OASetProperty @OLEXMLBulk ,'ConnectionString', @DataBase		
			IF (@ErrCode <> 0) 
				BEGIN SET @ErrMethod = 'ConnectionString'	
					  GOTO Error 
				END
		EXEC @ErrCode = sys.sp_OASetProperty @OLEXMLBulk ,'ErrorLogFile', @ErrorLog		
			IF (@ErrCode <> 0) 
				BEGIN SET @ErrMethod = 'ErrorLogFile'	
					  GOTO Error 
				END

		EXEC @ErrCode = sys.sp_OASetProperty @OLEXMLBulk, 'CheckConstraints', 1			
			IF (@ErrCode <> 0) 
				BEGIN SET @ErrMethod = 'CheckConstraints'	
					  GOTO Error 
				END

		--EXEC @ErrCode = sys.sp_OASetProperty @OLEXMLBulk, 'ForceTableLock', 1			
		--	IF (@ErrCode <> 0) 
		--		BEGIN SET @ErrMethod = 'ForceTableLock'	
		--			  GOTO Error 
		--		END
		
		EXEC @ErrCode = sys.sp_OAMethod	@OLEXMLBulk, 'Execute', NULL, @Schema, @File
		IF (@ErrCode <> 0) 
		BEGIN
			SET @ErrMethod = 'Execute'
			DECLARE	 @Exist	Int
					,@Error	XML
				    ,@SQL	NvarChar(max)
			EXEC master.dbo.xp_FileExist @ErrorLog, @Exist OUT
			IF (@Exist = 1) 
			BEGIN
				 -- Из @ErrorLog файла
				Set @SQL = N'SELECT  @Error = E.Error + CASE WHEN Right(E.Error,1) <> ''>'' THEN ''lt>'' ELSE '''' END '
						   + N'FROM OPENROWSET(BULK '''+ @ErrorLog +''', SINGLE_NCLOB) E(Error)'
				exec sp_executesql @SQL, N'@Error xml OUTPUT', @Error=@Error OUTPUT 
				
				SELECT	@ErrDescript	= IsNull(@ErrDescript,'') + E.Error.value('Description[1]','SysName') + ' '
				FROM	@Error.nodes('/Result/Error')E(Error)
				SELECT	@ErrDescript	= IsNull(@ErrDescript,'') + E.Error.value('Description[1]','SysName') + ' '
				FROM	@Error.nodes('/Error/Record')E(Error)
			END 
			ELSE
				GOTO Error
		END
		GOTO Destroy
	Error:	
			EXEC @ErrCode = sys.sp_OAGetErrorInfo @OLEXMLBulk, @ErrorLog OUT, @ErrDescript OUT
	Destroy:
			EXEC @ErrCode = sys.sp_OADestroy @OLEXMLBulk
	END 
	ELSE
		SELECT	 
			 @ErrMethod	= 'SQLXMLBulkLoad.SQLXMLBulkload'
			,@ErrorLog	= 'sp_OACreate'
			,@ErrDescript	= 'Ошибка создания OLE объекта'
	
	-- Вывод ошибок
	IF (@ErrMethod IS NOT NULL) 
	BEGIN
		RAISERROR('Ошибка при выполнении метода "%s" в "%s": %s',18,1, @ErrMethod, @ErrorLog, @ErrDescript)
		RETURN	@@Error
	END
END
GO

Hala ere, liburutegi hau erabiliz xml-ren karga masiboa egiteko, xsd eskemak komentatuak behar dira, zeinak, hain zuzen ere, zer kargatzen den nola eta non adierazten duten.

Halako eskemak existitzen direla aipatzen nuen, "baina zaharrak bakarrik", dozena bat gunetan, baina inon ez nituen eskemak berak aurkitu. Eta haserretu egin zen.

Ez da zaila FIAS webgunean eskuragarri dagoen eskema aldatzea datuak eskuz inportatzeko.
Baina... guztira 271 soro dira! Hori asko da eserita eta ergel izatea!

Horregatik, eskema hauek automatikoki aldatzea erabaki nuen, aldi berean helburu-taulak datu-basean sortuz.

SQLXMLBULKLOAD-ek automatikoki sor ditzake kargatutako datuetarako taulak ohartatutako eskema batetik, baina, bestalde, eskema hau sortuko badut, zergatik ez, aldi berean, taula hauek nik egin behar ditudan moduan?

FIAS webgunetik xsd diagramak deskargatu nituen eta bisualki aztertu nituen.

Zorionez, denak mota berekoak dira, beraz, helburuko datu-base bat sor dezakezu eta eskemak beraiek alda ditzakezu kargatzeko, kontsulta ez oso konplexu batzuk erabiliz.

1. Sortu FIAS2 datu-base huts bat.
Zergatik "2"? Beno, "1" dbf-ok-en datu-base bat zelako. Agian geroago hitz egingo dugu horretaz.

FIAS2 datu-basea sortzeko gidoia

CREATE DATABASE [FIAS2]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'FIAS', FILENAME = N'E:DataFIAS1.mdf' , SIZE = 10485760KB , FILEGROWTH = 1048576KB )
 LOG ON 
( NAME = N'FIAS_log', FILENAME = N'E:DataFIAS1_log.ldf' , SIZE = 1048576KB , FILEGROWTH = 131072KB )
GO
ALTER DATABASE [FIAS2] SET COMPATIBILITY_LEVEL = 120
GO
ALTER DATABASE [FIAS2] SET ANSI_NULL_DEFAULT ON 
GO
ALTER DATABASE [FIAS2] SET ANSI_NULLS ON 
GO
ALTER DATABASE [FIAS2] SET ANSI_PADDING ON 
GO
ALTER DATABASE [FIAS2] SET ANSI_WARNINGS ON 
GO
ALTER DATABASE [FIAS2] SET ARITHABORT OFF 
GO
ALTER DATABASE [FIAS2] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [FIAS2] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [FIAS2] SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF)
GO
ALTER DATABASE [FIAS2] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [FIAS2] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [FIAS2] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [FIAS2] SET CONCAT_NULL_YIELDS_NULL ON 
GO
ALTER DATABASE [FIAS2] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [FIAS2] SET QUOTED_IDENTIFIER ON 
GO
ALTER DATABASE [FIAS2] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [FIAS2] SET  DISABLE_BROKER 
GO
ALTER DATABASE [FIAS2] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [FIAS2] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [FIAS2] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [FIAS2] SET READ_COMMITTED_SNAPSHOT ON 
GO
ALTER DATABASE [FIAS2] SET  READ_WRITE 
GO
ALTER DATABASE [FIAS2] SET RECOVERY SIMPLE 
GO
ALTER DATABASE [FIAS2] SET  MULTI_USER 
GO
ALTER DATABASE [FIAS2] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [FIAS2] SET TARGET_RECOVERY_TIME = 0 SECONDS 
GO
ALTER DATABASE [FIAS2] SET DELAYED_DURABILITY = DISABLED 
GO
USE [FIAS2]
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [FIAS2] MODIFY FILEGROUP [PRIMARY] DEFAULT
GO

2. Sor ditzagun plaka pare bat datu-base honetan.

Lehenengo plakak xsd eskemak edukiko ditu, eta bigarrenak benetan xsd eskema horietatik lortutako datu eskema bat izango da.

xsd eskemak, hain zuzen, xml fitxategi arruntak dira, beraz, haiekin lan egin dezakezu xml fitxategi arruntekin bezala.

USE [FIAS2]
go

if OBJECT_ID('dbo.[_FIAS]') is not null 
	drop table dbo.[_FIAS]
go

if OBJECT_ID('dbo._FIAS_SCHEMAS') is not null 
	drop table dbo.[_FIAS_SCHEMAS]
go

Create table dbo.[_FIAS_SCHEMAS] (x xml, [table “” not found /]
sysname) go -- Первый запрос: Загрузим схемы в табличку на сервере, для дальнейших манипуляций. insert into dbo.[_FIAS_SCHEMAS] (x, [table “” not found /]
) SELECT x = CAST(BulkColumn AS XML).query('.'), '_ACTSTAT' [table “” not found /]
FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ACTSTAT_2_250_08_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_ADDROBJ' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ADDROBJ_2_250_01_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_CENTERST' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_CENTERST_2_250_10_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_CURENTST' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_CURENTST_2_250_07_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_ADDROBJ' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_ADDROBJ_2_250_15_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_HOUSEINT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_HOUSEINT_2_250_17_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_HOUSE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_HOUSE_2_250_16_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_LANDMARK' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_LANDMARK_2_250_18_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_NORMDOC' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_NORMDOC_2_250_19_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_ESTSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ESTSTAT_2_250_13_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_FLATTYPE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_FLATTYPE_2_250_23_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_HOUSEINT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_HOUSEINT_2_250_03_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_HOUSE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_HOUSE_2_250_02_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_HSTSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_HSTSTAT_2_250_12_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_INTVSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_INTVSTAT_2_250_11_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_LANDMARK' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_LANDMARK_2_250_04_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_NDOCTYPE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_NDOCTYPE_2_250_20_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_NORMDOC' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_NORMDOC_2_250_05_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_OPERSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_OPERSTAT_2_250_09_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_ROOMTYPE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ROOMTYPE_2_250_24_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_ROOM' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ROOM_2_250_21_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_SOCRBASE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_SOCRBASE_2_250_06_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_STEAD' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_STEAD_2_250_22_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_STRSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_STRSTAT_2_250_14_04_01_01.xsd', SINGLE_BLOB) x -- Второй запрос: Распотрошим схемы, и создадим рабочую таблицу с метаданными ;WITH XMLNAMESPACES ('http://www.w3.org/2001/XMLSchema' as xs) Select a.[table “” not found /]
,tbl.[root_name] ,tbl.[root_description] ,tbl.[name] ,ROW_NUMBER() over (partition by a.[table “” not found /]
order by 1/0) N ,tbl.[column] ,tbl.[required] ,tbl.[description] ,tbl.[type] ,tbl.[len] ,Case tbl.[type] when N'byte' then N'tinyint' when N'date' then N'date' when N'int' then N'int' when N'string' then Case when tbl.[len] = 36 and (tbl.[column] like N'%ID' or tbl.[column] = N'NORMDOC') then N'uniqueidentifier' when tbl.[len] is Null then N'nvarchar(max)' Else N'nvarchar(' + cast(tbl.[len] as nvarchar(4000)) + N')' END when N'integer' then Case when tbl.[len] > 9 then N'bigint' when tbl.[len] <= 4 then N'smallint' Else N'int' end else N'nvarchar(max)' End [sqltype] ,t.n.query('.') [node] into dbo.[_FIAS] from dbo.[_FIAS_SCHEMAS] a Cross apply a.x.nodes('//xs:attribute') t(n) Cross apply (values -- некоторые поля используются несколько раз, поэтому сделаем так :) ( x.value('(xs:schema[1]/xs:element[1]/@name)', 'nvarchar(255)') ,x.value('(xs:schema[1]/xs:element[1]/xs:annotation/xs:documentation[1]/text())[1]', 'nvarchar(4000)') ,x.value('(xs:schema[1]/xs:element[1]/xs:complexType[1]/xs:sequence[1]/xs:element[1]/@name)', 'nvarchar(255)') ,t.n.value('(./@name)[1]', 'nvarchar(255)') ,t.n.value('(./@use)[1]', 'nvarchar(255)') ,Stuff(Coalesce(t.n.value('(./xs:simpleType/xs:restriction/@base)[1]', 'nvarchar(255)'), t.n.value('(./@type)[1]', 'nvarchar(255)')), 1, 3, '') ,Coalesce(t.n.value('(./xs:simpleType/xs:restriction/xs:length/@value)[1]', 'int') ,t.n.value('(./xs:simpleType/xs:restriction/xs:maxLength/@value)[1]', 'int') ,t.n.value('(./xs:simpleType/xs:restriction/xs:totalDigits/@value)[1]', 'int')) ,Replace( Replace( Replace( Replace( Replace( Replace( Replace( Replace( Replace(t.n.value('(./xs:annotation/xs:documentation)[1]', 'nvarchar(4000)'), ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') ) ) tbl([root_name], [root_description], [name], [column], [required], [type], [len], [description]) -- Посмотрим на результат Select * from dbo.[_FIAS]

Xehetasun gehiago eskatuta:

Lehenengoak - xsd eskemak zerbitzariko taula batean kargatzen ditu, eskema bakoitzari aldi berean ohar bat ematen dio [taulan “” ez da aurkitu /] eremuan.
– dagokion taulako datuak kargatu nahi ditudan taularen izena.

Jakina, posible izango litzateke eskemak aldatzen diren bakoitzean deskargatu, karpeta batean sartu eta helburuko taulen egitura berriro eta automatikoki berregiteko, eta eskemak berriro aldatu ahal izateko. eta automatikoki, baina hori .To. egitura oso gutxitan aldatzen da, aldatu zen azken aldia jada 16an izan zen - halako makina automatikoa egitea oso alferra da. Hobe da 30 segundo pasatzea CTRL+C - CTRL+V.

Horregatik, diagramak dituen taula batean kargatzea oso kodetuta dago, eta deskargatutako fitxategietarako bideak, baita taulen izenak ere, eskuz idazten dira.

Bigarren kontsultak taularen egiturari buruzko informazioa lortzen du eskemetatik. 3nf-ekin ez nuen trabarik egin, baina mahai bakar gisa zabaldu nuen.

Bide batez, arreta jarri pieza honi (+)

Askotan, hasiberriek galdera hau egiten dute: posible al da kontsulta batean adierazpen konplexuren bat kalkulatzea behin, eta, ondoren, hainbat lekutan behin eta berriz erabiltzea. Bai, egin dezakezu. Honela, adibidez:

from dbo.[_FIAS_SCHEMAS] a
	Cross apply a.x.nodes('//xs:attribute') t(n)
	Cross apply 
			(values -- некоторые поля используются несколько раз, поэтому сделаем так :) 
			(
			 x.value('(xs:schema[1]/xs:element[1]/@name)', 'nvarchar(255)')
, ... здесь можно перечислить все сложновычисляемые поля, чтобы потом использовать их в любой части запроса
			)
			) tbl([root_name], [root_description], [name], [column], [required], [type], [len], [description])

Muga batzuekin funtzionatzen du, noski. Baina erabiltzen hasten zarenean, azkar ulertuko duzu zer diren.

3. Sor ditzagun FIAS taulak sortzen dituzten script-ak, eta gero exekutatu eta taulak beraiek sortu:


Declare @schema sysname = N'dbo'
Declare @sql nvarchar(max)

-- Создадим код для создания таблиц, и запустим его
set @sql = (
	Select Distinct 
		N';Create table ' 
		+ Quotename(@schema)
		+ N'.'
		+ Quotename([table “” not found /]
) + N'(' + Stuff((Select N',' + QUOTENAME(b.[column]) + N' ' + b.[sqltype] + Case b.[required] when 'required' then N' NOT NULL' when 'optional' then N' NULL' End From dbo.[_FIAS] b where b.[table “” not found /]
= a.[table “” not found /]
Order by N ASC For xml path(N''), type ).value(N'.', 'nvarchar(max)'), 1, 1, N'') + N')' from dbo.[_FIAS] a For xml path(N''), type).value(N'.', N'nvarchar(max)') exec (@sql)

Nor den alferra hau guztia egiteko: taulak eta FIAS diagramak ohartaraziak sortzeko gidoiak erantsiko dira artikuluaren amaieran.

Taulak sortzeko kontsulta, kontsultaren emaitza

;
CREATE TABLE [dbo].[_ACTSTAT] (
[NAME] NVARCHAR(100) NOT NULL
,[ACTSTATID] BIGINT NOT NULL
);
CREATE TABLE [dbo].[_ADDROBJ] (
[AOGUID] UNIQUEIDENTIFIER NOT NULL
,[FORMALNAME] NVARCHAR(120) NOT NULL
,[REGIONCODE] NVARCHAR(2) NOT NULL
,[AUTOCODE] NVARCHAR(1) NOT NULL
,[AREACODE] NVARCHAR(3) NOT NULL
,[CITYCODE] NVARCHAR(3) NOT NULL
,[CTARCODE] NVARCHAR(3) NOT NULL
,[PLACECODE] NVARCHAR(3) NOT NULL
,[PLANCODE] NVARCHAR(4) NOT NULL
,[STREETCODE] NVARCHAR(4) NULL
,[EXTRCODE] NVARCHAR(4) NOT NULL
,[SEXTCODE] NVARCHAR(3) NOT NULL
,[OFFNAME] NVARCHAR(120) NULL
,[POSTALCODE] NVARCHAR(6) NULL
,[IFNSFL] NVARCHAR(4) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
,[OKATO] NVARCHAR(11) NULL
,[UPDATEDATE] DATE NOT NULL
,[SHORTNAME] NVARCHAR(10) NOT NULL
,[AOLEVEL] BIGINT NOT NULL
,[PARENTGUID] UNIQUEIDENTIFIER NULL
,[AOID] UNIQUEIDENTIFIER NOT NULL
,[PREVID] UNIQUEIDENTIFIER NULL
,[NEXTID] UNIQUEIDENTIFIER NULL
,[CODE] NVARCHAR(17) NULL
,[PLAINCODE] NVARCHAR(15) NULL
,[ACTSTATUS] BIGINT NOT NULL
,[CENTSTATUS] BIGINT NOT NULL
,[OPERSTATUS] BIGINT NOT NULL
,[CURRSTATUS] BIGINT NOT NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
,[LIVESTATUS] TINYINT NOT NULL
,[DIVTYPE] INT NOT NULL
,[OKTMO] NVARCHAR(11) NULL
);
CREATE TABLE [dbo].[_CENTERST] (
[CENTERSTID] BIGINT NOT NULL
,[NAME] NVARCHAR(100) NOT NULL
);
CREATE TABLE [dbo].[_CURENTST] (
[CURENTSTID] BIGINT NOT NULL
,[NAME] NVARCHAR(100) NOT NULL
);
CREATE TABLE [dbo].[_DEL_ADDROBJ] (
[AOGUID] UNIQUEIDENTIFIER NOT NULL
,[FORMALNAME] NVARCHAR(120) NOT NULL
,[REGIONCODE] NVARCHAR(2) NOT NULL
,[AUTOCODE] NVARCHAR(1) NOT NULL
,[AREACODE] NVARCHAR(3) NOT NULL
,[CITYCODE] NVARCHAR(3) NOT NULL
,[CTARCODE] NVARCHAR(3) NOT NULL
,[PLACECODE] NVARCHAR(3) NOT NULL
,[STREETCODE] NVARCHAR(4) NULL
,[EXTRCODE] NVARCHAR(4) NOT NULL
,[PLANCODE] NVARCHAR(4) NOT NULL
,[SEXTCODE] NVARCHAR(3) NOT NULL
,[OFFNAME] NVARCHAR(120) NULL
,[POSTALCODE] NVARCHAR(6) NULL
,[SHORTNAME] NVARCHAR(10) NOT NULL
,[AOLEVEL] BIGINT NOT NULL
,[PARENTGUID] UNIQUEIDENTIFIER NULL
,[AOID] UNIQUEIDENTIFIER NOT NULL
,[PREVID] UNIQUEIDENTIFIER NULL
,[NEXTID] UNIQUEIDENTIFIER NULL
,[CODE] NVARCHAR(17) NULL
,[PLAINCODE] NVARCHAR(15) NULL
,[ACTSTATUS] BIGINT NOT NULL
,[CENTSTATUS] BIGINT NOT NULL
,[OPERSTATUS] BIGINT NOT NULL
,[CURRSTATUS] BIGINT NOT NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
,[LIVESTATUS] TINYINT NOT NULL
,[IFNSFL] NVARCHAR(4) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
,[OKATO] NVARCHAR(11) NULL
,[OKTMO] NVARCHAR(11) NULL
,[UPDATEDATE] DATE NOT NULL
);
CREATE TABLE [dbo].[_DEL_HOUSE] (
[POSTALCODE] NVARCHAR(6) NULL
,[IFNSFL] NVARCHAR(4) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
,[OKATO] NVARCHAR(11) NULL
,[OKTMO] NVARCHAR(11) NULL
,[UPDATEDATE] DATE NOT NULL
,[HOUSENUM] NVARCHAR(20) NULL
,[ESTSTATUS] SMALLINT NOT NULL
,[BUILDNUM] NVARCHAR(10) NULL
,[STRUCNUM] NVARCHAR(10) NULL
,[STRSTATUS] BIGINT NULL
,[HOUSEID] UNIQUEIDENTIFIER NOT NULL
,[HOUSEGUID] UNIQUEIDENTIFIER NOT NULL
,[AOGUID] UNIQUEIDENTIFIER NOT NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[STATSTATUS] BIGINT NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
,[COUNTER] BIGINT NOT NULL
,[CADNUM] NVARCHAR(100) NULL
,[DIVTYPE] INT NOT NULL
);
CREATE TABLE [dbo].[_DEL_HOUSEINT] (
[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
,[OKATO] NVARCHAR(11) NULL
,[OKTMO] NVARCHAR(11) NULL
,[UPDATEDATE] DATE NOT NULL
,[INTSTART] BIGINT NOT NULL
,[INTEND] BIGINT NOT NULL
,[POSTALCODE] NVARCHAR(6) NULL
,[IFNSFL] NVARCHAR(4) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[HOUSEINTID] UNIQUEIDENTIFIER NOT NULL
,[INTGUID] UNIQUEIDENTIFIER NOT NULL
,[AOGUID] UNIQUEIDENTIFIER NOT NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[INTSTATUS] BIGINT NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
,[COUNTER] BIGINT NOT NULL
);
CREATE TABLE [dbo].[_DEL_LANDMARK] (
[LOCATION] NVARCHAR(500) NOT NULL
,[POSTALCODE] NVARCHAR(6) NULL
,[IFNSFL] NVARCHAR(4) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
,[OKATO] NVARCHAR(11) NULL
,[OKTMO] NVARCHAR(11) NULL
,[UPDATEDATE] DATE NOT NULL
,[LANDID] UNIQUEIDENTIFIER NOT NULL
,[LANDGUID] UNIQUEIDENTIFIER NOT NULL
,[AOGUID] UNIQUEIDENTIFIER NOT NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
);
CREATE TABLE [dbo].[_DEL_NORMDOC] (
[NORMDOCID] UNIQUEIDENTIFIER NOT NULL
,[DOCNAME] NVARCHAR(max) NULL
,[DOCDATE] DATE NULL
,[DOCNUM] NVARCHAR(20) NULL
,[DOCTYPE] BIGINT NOT NULL
,[DOCIMGID] UNIQUEIDENTIFIER NULL
);
CREATE TABLE [dbo].[_ESTSTAT] (
[ESTSTATID] BIGINT NOT NULL
,[NAME] NVARCHAR(20) NOT NULL
,[SHORTNAME] NVARCHAR(20) NULL
);
CREATE TABLE [dbo].[_FLATTYPE] (
[SHORTNAME] NVARCHAR(20) NULL
,[FLTYPEID] BIGINT NOT NULL
,[NAME] NVARCHAR(20) NOT NULL
);
CREATE TABLE [dbo].[_HOUSE] (
[POSTALCODE] NVARCHAR(6) NULL
,[REGIONCODE] NVARCHAR(2) NULL
,[IFNSFL] NVARCHAR(4) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
,[OKATO] NVARCHAR(11) NULL
,[OKTMO] NVARCHAR(11) NULL
,[UPDATEDATE] DATE NOT NULL
,[HOUSENUM] NVARCHAR(20) NULL
,[ESTSTATUS] SMALLINT NOT NULL
,[BUILDNUM] NVARCHAR(10) NULL
,[STRUCNUM] NVARCHAR(10) NULL
,[STRSTATUS] BIGINT NULL
,[HOUSEID] UNIQUEIDENTIFIER NOT NULL
,[HOUSEGUID] UNIQUEIDENTIFIER NOT NULL
,[AOGUID] UNIQUEIDENTIFIER NOT NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[STATSTATUS] BIGINT NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
,[COUNTER] BIGINT NOT NULL
,[CADNUM] NVARCHAR(100) NULL
,[DIVTYPE] INT NOT NULL
);
CREATE TABLE [dbo].[_HOUSEINT] (
[OKTMO] NVARCHAR(11) NULL
,[OKATO] NVARCHAR(11) NULL
,[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[POSTALCODE] NVARCHAR(6) NULL
,[IFNSFL] NVARCHAR(4) NULL
,[ENDDATE] DATE NOT NULL
,[INTSTATUS] BIGINT NOT NULL
,[AOGUID] UNIQUEIDENTIFIER NOT NULL
,[STARTDATE] DATE NOT NULL
,[INTGUID] UNIQUEIDENTIFIER NOT NULL
,[HOUSEINTID] UNIQUEIDENTIFIER NOT NULL
,[INTSTART] BIGINT NOT NULL
,[INTEND] BIGINT NOT NULL
,[UPDATEDATE] DATE NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
,[COUNTER] BIGINT NOT NULL
);
CREATE TABLE [dbo].[_HSTSTAT] (
[HOUSESTID] BIGINT NOT NULL
,[NAME] NVARCHAR(60) NOT NULL
);
CREATE TABLE [dbo].[_INTVSTAT] (
[INTVSTATID] BIGINT NOT NULL
,[NAME] NVARCHAR(60) NOT NULL
);
CREATE TABLE [dbo].[_LANDMARK] (
[NORMDOC] UNIQUEIDENTIFIER NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[LANDGUID] UNIQUEIDENTIFIER NOT NULL
,[AOGUID] UNIQUEIDENTIFIER NOT NULL
,[LANDID] UNIQUEIDENTIFIER NOT NULL
,[LOCATION] NVARCHAR(500) NOT NULL
,[POSTALCODE] NVARCHAR(6) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[IFNSFL] NVARCHAR(4) NULL
,[UPDATEDATE] DATE NOT NULL
,[OKTMO] NVARCHAR(11) NULL
,[OKATO] NVARCHAR(11) NULL
,[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
);
CREATE TABLE [dbo].[_NDOCTYPE] (
[NDTYPEID] BIGINT NOT NULL
,[NAME] NVARCHAR(250) NOT NULL
);
CREATE TABLE [dbo].[_NORMDOC] (
[NORMDOCID] UNIQUEIDENTIFIER NOT NULL
,[DOCNAME] NVARCHAR(max) NULL
,[DOCDATE] DATE NULL
,[DOCNUM] NVARCHAR(20) NULL
,[DOCTYPE] BIGINT NOT NULL
,[DOCIMGID] UNIQUEIDENTIFIER NULL
);
CREATE TABLE [dbo].[_OPERSTAT] (
[OPERSTATID] BIGINT NOT NULL
,[NAME] NVARCHAR(100) NOT NULL
);
CREATE TABLE [dbo].[_ROOM] (
[ROOMGUID] UNIQUEIDENTIFIER NOT NULL
,[FLATNUMBER] NVARCHAR(50) NOT NULL
,[FLATTYPE] INT NOT NULL
,[ROOMNUMBER] NVARCHAR(50) NULL
,[ROOMTYPE] INT NULL
,[REGIONCODE] NVARCHAR(2) NOT NULL
,[POSTALCODE] NVARCHAR(6) NULL
,[UPDATEDATE] DATE NOT NULL
,[HOUSEGUID] UNIQUEIDENTIFIER NOT NULL
,[ROOMID] UNIQUEIDENTIFIER NOT NULL
,[PREVID] UNIQUEIDENTIFIER NULL
,[NEXTID] UNIQUEIDENTIFIER NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[LIVESTATUS] TINYINT NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
,[OPERSTATUS] BIGINT NOT NULL
,[CADNUM] NVARCHAR(100) NULL
,[ROOMCADNUM] NVARCHAR(100) NULL
);
CREATE TABLE [dbo].[_ROOMTYPE] (
[SHORTNAME] NVARCHAR(20) NULL
,[NAME] NVARCHAR(20) NOT NULL
,[RMTYPEID] BIGINT NOT NULL
);
CREATE TABLE [dbo].[_SOCRBASE] (
[LEVEL] BIGINT NOT NULL
,[SCNAME] NVARCHAR(10) NULL
,[SOCRNAME] NVARCHAR(50) NOT NULL
,[KOD_T_ST] NVARCHAR(4) NOT NULL
);
CREATE TABLE [dbo].[_STEAD] (
[STEADGUID] UNIQUEIDENTIFIER NOT NULL
,[NUMBER] NVARCHAR(120) NULL
,[REGIONCODE] NVARCHAR(2) NOT NULL
,[POSTALCODE] NVARCHAR(6) NULL
,[IFNSFL] NVARCHAR(4) NULL
,[TERRIFNSFL] NVARCHAR(4) NULL
,[IFNSUL] NVARCHAR(4) NULL
,[TERRIFNSUL] NVARCHAR(4) NULL
,[OKATO] NVARCHAR(11) NULL
,[OKTMO] NVARCHAR(11) NULL
,[UPDATEDATE] DATE NOT NULL
,[PARENTGUID] UNIQUEIDENTIFIER NULL
,[STEADID] UNIQUEIDENTIFIER NOT NULL
,[PREVID] UNIQUEIDENTIFIER NULL
,[NEXTID] UNIQUEIDENTIFIER NULL
,[OPERSTATUS] BIGINT NOT NULL
,[STARTDATE] DATE NOT NULL
,[ENDDATE] DATE NOT NULL
,[NORMDOC] UNIQUEIDENTIFIER NULL
,[LIVESTATUS] TINYINT NOT NULL
,[CADNUM] NVARCHAR(100) NULL
,[DIVTYPE] INT NOT NULL
);
CREATE TABLE [dbo].[_STRSTAT] (
[NAME] NVARCHAR(20) NOT NULL
,[SHORTNAME] NVARCHAR(20) NULL
,[STRSTATID] BIGINT NOT NULL
)

4. Xsd-k taulen eta haietako eremuen deskribapen arrunta duenez, erabiliko dugu eta egituraren deskribapena sortuko dugu taulen propietate hedatuetan eta haien eremuetan:

-- Создадим аннотацию к таблицам и полям
Set @sql = (
Select N'; exec sp_addextendedproperty @name=''description'', @value=N''' 
+ a.[root_description] 
+ N''', @level0type =N''Schema'', @level0name = N''' 
+ @schema 
+ N''', @level1type = N''Table'',  @level1name = N''' 
+ a.[table “” not found /]
+ N'''' from (Select distinct [table “” not found /]
, [root_description] from dbo.[_FIAS]) a for xml path(N''), type ).value(N'.', N'nvarchar(max)') exec (@sql) Set @sql = ( Select N'; exec sp_addextendedproperty @name=''description'', @value=N''' + a.[description] + N''', @level0type =N''Schema'', @level0name = N''' + @schema + N''', @level1type = N''Table'', @level1name = N''' + a.[table “” not found /]
+ N''', @level2type = N''Column'', @level2name = N''' + a.[column] + N'''' from dbo.[_FIAS] a for xml path(N''), type ).value(N'.', N'nvarchar(max)') exec (@sql)

Hona hemen lanaren ondorioz sortu eta exekutatu den kodea

;
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по статусу актуальности в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ACTSTAT';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией классификатора адресообразующих элементов БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по статусу центра в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_CENTERST';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по статусу актуальности КЛАДР 4.0 в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_CURENTST';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией классификатора адресообразующих элементов БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по номерам домов улиц городов и населенных пунктов, номера земельных участков и т.п в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по интервалам домов в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по описанию мест расположения  имущественных объектов в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по сведениям по нормативным документам, являющимся основанием присвоения адресному элементу наименования в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по признакам владения в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ESTSTAT';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по типам помещений в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_FLATTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по номерам домов улиц городов и населенных пунктов в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по интервалам домов в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по статусу состояния домов  в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HSTSTAT';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по статусу интервалов домов в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_INTVSTAT';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по описанию мест расположения  имущественных объектов в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по типу нормативного документа в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NDOCTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по сведениям по нормативным документам, являющимся основанием присвоения адресному элементу наименования в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по статусу действия в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_OPERSTAT';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла со сведениями о помещениях'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по типам комнат в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOMTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по типам адресных объектов в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_SOCRBASE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла со сведениями о земельных участках'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состав и структура файла с информацией по признакам строения в БД ФИАС'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STRSTAT'
;
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор адресного объекта '
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AOGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Формализованное наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'FORMALNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код региона'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'REGIONCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код автономии'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AUTOCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код района'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AREACODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код города'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CITYCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код внутригородского района'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CTARCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код населенного пункта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PLACECODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код элемента планировочной структуры'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PLANCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код улицы'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'STREETCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код дополнительного адресообразующего элемента'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'EXTRCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код подчиненного дополнительного адресообразующего элемента'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'SEXTCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Официальное наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'OFFNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Краткое наименование типа объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'SHORTNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уровень адресного объекта '
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AOLEVEL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор объекта родительского объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PARENTGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор записи. Ключевое поле.'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AOID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи связывания с предыдушей исторической записью'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PREVID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи связывания с последующей исторической записью'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'NEXTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код адресного объекта одной строкой с признаком актуальности из КЛАДР 4.0. '
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код адресного объекта из КЛАДР 4.0 одной строкой без признака актуальности (последних двух цифр)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PLAINCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус актуальности адресного объекта ФИАС. Актуальный адрес на текущую дату. Обычно последняя запись об адресном объекте.
0 – Не актуальный
1 - Актуальный
'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'ACTSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус центра'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CENTSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус действия над записью – причина появления записи (см. описание таблицы OperationStatus):
01 – Инициация;
10 – Добавление;
20 – Изменение;
21 – Групповое изменение;
30 – Удаление;
31 - Удаление вследствие удаления вышестоящего объекта;
40 – Присоединение адресного объекта (слияние);
41 – Переподчинение вследствие слияния вышестоящего объекта;
42 - Прекращение существования вследствие присоединения к другому адресному объекту;
43 - Создание нового адресного объекта в результате слияния адресных объектов;
50 – Переподчинение;
51 – Переподчинение вследствие переподчинения вышестоящего объекта;
60 – Прекращение существования вследствие дробления;
61 – Создание нового адресного объекта в результате дробления
'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'OPERSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус актуальности КЛАДР 4 (последние две цифры в коде)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CURRSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак действующего адресного объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'LIVESTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'
Тип адресации:
0 - не определено
1 - муниципальный;
2 - административно-территориальный
'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'DIVTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор статуса (ключ)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_CURENTST'
,@level2type = N'Column'
,@level2name = N'CURENTSTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование (0 - актуальный, 1-50, 2-98 – исторический (кроме 51), 51 - переподчиненный, 99 - несуществующий)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_CURENTST'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Краткое наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_FLATTYPE'
,@level2type = N'Column'
,@level2name = N'SHORTNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип помещения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_FLATTYPE'
,@level2type = N'Column'
,@level2name = N'FLTYPEID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_FLATTYPE'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор статуса'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HSTSTAT'
,@level2type = N'Column'
,@level2name = N'HOUSESTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HSTSTAT'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи (ключ)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NDOCTYPE'
,@level2type = N'Column'
,@level2name = N'NDTYPEID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование типа нормативного документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NDOCTYPE'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор статуса (ключ)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_OPERSTAT'
,@level2type = N'Column'
,@level2name = N'OPERSTATID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование
01 – Инициация;
10 – Добавление;
20 – Изменение;
21 – Групповое изменение;
30 – Удаление;
31 - Удаление вследствие удаления вышестоящего объекта;
40 – Присоединение адресного объекта (слияние);
41 – Переподчинение вследствие слияния вышестоящего объекта;
42 - Прекращение существования вследствие присоединения к другому адресному объекту;
43 - Создание нового адресного объекта в результате слияния адресных объектов;
50 – Переподчинение;
51 – Переподчинение вследствие переподчинения вышестоящего объекта;
60 – Прекращение существования вследствие дробления;
61 – Создание нового адресного объекта в результате дробления;
70 – Восстановление объекта прекратившего существование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_OPERSTAT'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор адресного объекта '
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AOGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Формализованное наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'FORMALNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код региона'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'REGIONCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код автономии'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AUTOCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код района'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AREACODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код города'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CITYCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код внутригородского района'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CTARCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код населенного пункта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PLACECODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код улицы'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'STREETCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код дополнительного адресообразующего элемента'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'EXTRCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код элемента планировочной структуры'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PLANCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код подчиненного дополнительного адресообразующего элемента'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'SEXTCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Официальное наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'OFFNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Краткое наименование типа объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'SHORTNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уровень адресного объекта '
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AOLEVEL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор объекта родительского объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PARENTGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор записи. Ключевое поле.'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'AOID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи связывания с предыдушей исторической записью'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PREVID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи связывания с последующей исторической записью'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'NEXTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код адресного объекта одной строкой с признаком актуальности из КЛАДР 4.0. '
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код адресного объекта из КЛАДР 4.0 одной строкой без признака актуальности (последних двух цифр)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'PLAINCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус актуальности адресного объекта ФИАС. Актуальный адрес на текущую дату. Обычно последняя запись об адресном объекте.
0 – Не актуальный
1 - Актуальный
'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'ACTSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус центра'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CENTSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус действия над записью – причина появления записи (см. описание таблицы OperationStatus):
01 – Инициация;
10 – Добавление;
20 – Изменение;
21 – Групповое изменение;
30 – Удаление;
31 - Удаление вследствие удаления вышестоящего объекта;
40 – Присоединение адресного объекта (слияние);
41 – Переподчинение вследствие слияния вышестоящего объекта;
42 - Прекращение существования вследствие присоединения к другому адресному объекту;
43 - Создание нового адресного объекта в результате слияния адресных объектов;
50 – Переподчинение;
51 – Переподчинение вследствие переподчинения вышестоящего объекта;
60 – Прекращение существования вследствие дробления;
61 – Создание нового адресного объекта в результате дробления
'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'OPERSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус актуальности КЛАДР 4 (последние две цифры в коде)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'CURRSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак действующего адресного объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'LIVESTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_ADDROBJ'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Значение начала интервала'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'INTSTART';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Значение окончания интервала'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'INTEND';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи интервала домов'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'HOUSEINTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор интервала домов'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'INTGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор объекта родительского объекта (улицы, города, населенного пункта и т.п.)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'AOGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус интервала (обычный, четный, нечетный)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'INTSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Счетчик записей домов для КЛАДР 4'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'COUNTER';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор нормативного документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_NORMDOC'
,@level2type = N'Column'
,@level2name = N'NORMDOCID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор образа (внешний ключ)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCIMGID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус интервала (обычный, четный, нечетный)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'INTSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор объекта родительского объекта (улицы, города, населенного пункта и т.п.)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'AOGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор интервала домов'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'INTGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи интервала домов'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'HOUSEINTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Значение начала интервала'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'INTSTART';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Значение окончания интервала'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'INTEND';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Счетчик записей домов для КЛАДР 4'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSEINT'
,@level2type = N'Column'
,@level2name = N'COUNTER';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор статуса (обычный, четный, нечетный)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_INTVSTAT'
,@level2type = N'Column'
,@level2name = N'INTVSTATID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_INTVSTAT'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор ориентира'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'LANDGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор родительского объекта (улицы, города, населенного пункта и т.п.)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'AOGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор записи ориентира'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'LANDID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Месторасположение ориентира'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'LOCATION';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_LANDMARK'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор нормативного документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NORMDOC'
,@level2type = N'Column'
,@level2name = N'NORMDOCID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип документа'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор образа (внешний ключ)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_NORMDOC'
,@level2type = N'Column'
,@level2name = N'DOCIMGID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Краткое наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOMTYPE'
,@level2type = N'Column'
,@level2name = N'SHORTNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOMTYPE'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип комнаты'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOMTYPE'
,@level2type = N'Column'
,@level2name = N'RMTYPEID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уровень адресного объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_SOCRBASE'
,@level2type = N'Column'
,@level2name = N'LEVEL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Краткое наименование типа объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_SOCRBASE'
,@level2type = N'Column'
,@level2name = N'SCNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Полное наименование типа объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_SOCRBASE'
,@level2type = N'Column'
,@level2name = N'SOCRNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Ключевое поле'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_SOCRBASE'
,@level2type = N'Column'
,@level2name = N'KOD_T_ST';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование
0 – Не актуальный
1 – Актуальный (последняя запись по адресному объекту)
'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ACTSTAT'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор статуса (ключ)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ACTSTAT'
,@level2type = N'Column'
,@level2name = N'ACTSTATID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор статуса'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_CENTERST'
,@level2type = N'Column'
,@level2name = N'CENTERSTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_CENTERST'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата время внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер дома'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'HOUSENUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак владения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'ESTSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер корпуса'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'BUILDNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер строения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'STRUCNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак строения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'STRSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор записи дома'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'HOUSEID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор дома'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'HOUSEGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Guid записи родительского объекта (улицы, города, населенного пункта и т.п.)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'AOGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состояние дома'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'STATSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Счетчик записей домов для КЛАДР 4'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'COUNTER';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Кадастровый номер'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'CADNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип адресации:
0 - не определено
1 - муниципальный;
2 - административно-территориальный'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_HOUSE'
,@level2type = N'Column'
,@level2name = N'DIVTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак владения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ESTSTAT'
,@level2type = N'Column'
,@level2name = N'ESTSTATID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ESTSTAT'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Краткое наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ESTSTAT'
,@level2type = N'Column'
,@level2name = N'SHORTNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор адресного объекта (земельного участка)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'STEADGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер земельного участка'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'NUMBER';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код региона'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'REGIONCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор объекта родительского объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'PARENTGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор записи. Ключевое поле.'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'STEADID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи связывания с предыдушей исторической записью'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'PREVID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи связывания с последующей исторической записью'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'NEXTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус действия над записью – причина появления записи (см. описание таблицы OperationStatus):
01 – Инициация;
10 – Добавление;
20 – Изменение;
21 – Групповое изменение;
30 – Удаление;
31 - Удаление вследствие удаления вышестоящего объекта;
40 – Присоединение адресного объекта (слияние);
41 – Переподчинение вследствие слияния вышестоящего объекта;
42 - Прекращение существования вследствие присоединения к другому адресному объекту;
43 - Создание нового адресного объекта в результате слияния адресных объектов;
50 – Переподчинение;
51 – Переподчинение вследствие переподчинения вышестоящего объекта;
60 – Прекращение существования вследствие дробления;
61 – Создание нового адресного объекта в результате дробления
'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'OPERSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак действующего адресного объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'LIVESTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Кадастровый номер'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'CADNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип адресации:
0 - не определено
1 - муниципальный;
2 - административно-территориальный'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STEAD'
,@level2type = N'Column'
,@level2name = N'DIVTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Месторасположение ориентира'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'LOCATION';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор записи ориентира'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'LANDID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор ориентира'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'LANDGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор родительского объекта (улицы, города, населенного пункта и т.п.)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'AOGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_DEL_LANDMARK'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код региона'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'REGIONCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'IFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ФЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'TERRIFNSFL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'IFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код территориального участка ИФНС ЮЛ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'TERRIFNSUL';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKATO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'OKATO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'OKTMO'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'OKTMO';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата время внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер дома'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'HOUSENUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак владения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'ESTSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер корпуса'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'BUILDNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер строения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'STRUCNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак строения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'STRSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор записи дома'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'HOUSEID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор дома'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'HOUSEGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Guid записи родительского объекта (улицы, города, населенного пункта и т.п.)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'AOGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Состояние дома'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'STATSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Счетчик записей домов для КЛАДР 4'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'COUNTER';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Кадастровый номер'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'CADNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип адресации:
0 - не определено
1 - муниципальный;
2 - административно-территориальный'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_HOUSE'
,@level2type = N'Column'
,@level2name = N'DIVTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Глобальный уникальный идентификатор адресного объекта (помещения)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'ROOMGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер помещения или офиса'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'FLATNUMBER';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип помещения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'FLATTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Номер комнаты'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'ROOMNUMBER';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Тип комнаты'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'ROOMTYPE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Код региона'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'REGIONCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Почтовый индекс'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'POSTALCODE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Дата внесения записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'UPDATEDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор родительского объекта (дома)'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'HOUSEGUID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Уникальный идентификатор записи. Ключевое поле.'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'ROOMID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи связывания с предыдушей исторической записью'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'PREVID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Идентификатор записи связывания с последующей исторической записью'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'NEXTID';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Начало действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'STARTDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Окончание действия записи'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'ENDDATE';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак действующего адресного объекта'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'LIVESTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Внешний ключ на нормативный документ'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'NORMDOC';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Статус действия над записью – причина появления записи (см. описание таблицы OperationStatus):
01 – Инициация;
10 – Добавление;
20 – Изменение;
21 – Групповое изменение;
30 – Удаление;
31 - Удаление вследствие удаления вышестоящего объекта;
40 – Присоединение адресного объекта (слияние);
41 – Переподчинение вследствие слияния вышестоящего объекта;
42 - Прекращение существования вследствие присоединения к другому адресному объекту;
43 - Создание нового адресного объекта в результате слияния адресных объектов;
50 – Переподчинение;
51 – Переподчинение вследствие переподчинения вышестоящего объекта;
60 – Прекращение существования вследствие дробления;
61 – Создание нового адресного объекта в результате дробления
'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'OPERSTATUS';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Кадастровый номер помещения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'CADNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Кадастровый номер комнаты в помещении'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_ROOM'
,@level2type = N'Column'
,@level2name = N'ROOMCADNUM';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STRSTAT'
,@level2type = N'Column'
,@level2name = N'NAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Краткое наименование'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STRSTAT'
,@level2type = N'Column'
,@level2name = N'SHORTNAME';
EXEC sp_addextendedproperty @name = 'description'
,@value = N'Признак строения'
,@level0type = N'Schema'
,@level0name = N'dbo'
,@level1type = N'Table'
,@level1name = N'_STRSTAT'
,@level2type = N'Column'
,@level2name = N'STRSTATID'

5. Zirkuituak beraiek aldatzen ditugu:

-- Определение ссылки на импортируемую схему
update a
Set x.modify ('declare namespace xs="http://www.w3.org/2001/XMLSchema";             
insert <xs:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="./sqltypes.xsd" />  as first
into (xs:schema)[1]')
from dbo.[_FIAS_SCHEMAS] a
-- Определение корневого аттрибута
update a
Set x.modify('declare namespace ss="urn:schemas-microsoft-com:mapping-schema";             
insert (              
attribute ss:is-constant {"1"}          
)             
into (/xs:schema[1]/xs:element[1])')
from dbo.[_FIAS_SCHEMAS] a
-- Определение ноды, являющейся строкой таблицы и связанной с ней таблицы
update a
Set x.modify('declare namespace ss="urn:schemas-microsoft-com:mapping-schema";             
insert (              
attribute ss:relation {sql:column("a.table")}         
)             
into (xs:schema[1]/xs:element[1]/xs:complexType[1]/xs:sequence[1]/xs:element[1])')
from dbo.[_FIAS_SCHEMAS] a
-- Аннотация полей в схеме
-- Т.к. за 1 раз можно модифицировать только одну ноду - придется использовать курсор
Declare @table nvarchar(4000)
Declare @column nvarchar(4000)
Declare cur CURSOR LOCAL FORWARD_ONLY
for
Select [table “” not found /]
, [column] from dbo.[_FIAS] Open cur FETCH NEXT FROM cur into @table, @column WHILE @@FETCH_STATUS = 0 BEGIN update a Set x.modify('declare namespace ss="urn:schemas-microsoft-com:mapping-schema"; insert ( attribute ss:field {sql:column("t.column")} ,attribute ss:datatype {sql:column("b.sqltype")} ) into (//xs:attribute[@name = sql:column("b.column")])[1]') from dbo.[_FIAS_SCHEMAS] a inner join dbo.[_FIAS] b on a.[table “” not found /]
= b.[table “” not found /]
cross apply (Values(QUOTENAME(b.[column]))) t([column]) Where b.[table “” not found /]
= @table and b.[column] = @column FETCH NEXT FROM cur into @table, @column END CLOSE cur; DEALLOCATE cur;

6. Eta azkenik, igo xsd eskemak diskora gehiago erabiltzeko:

-- Выгрузка схем
-- Обратите внимание, путь к выгружаемым схемам - захардкожен!
Set @sql = (
Select N'; exec xp_cmdshell ''bcp "Select [x] from [FIAS2].[dbo].[_FIAS_SCHEMAS] where [table “” not found /]
= ''''' + a.[table “” not found /]
+ '''''" queryout "c:filesFIAS' + a.[table “” not found /]
+ '.xsd" -S . -T -w''' from dbo.[_FIAS_SCHEMAS] a for xml path(N''), type ).value(N'.', N'nvarchar(max)') exec (@sql)

Denak! :-)))

Hona hemen taulak sortzen dituen kontsulta osoa, haien deskribapenak, eskemak aldatzen dituena eta diskora botatzen dituena:

USE [FIAS2]
go
if OBJECT_ID('dbo.[_FIAS]') is not null 
drop table dbo.[_FIAS]
go
if OBJECT_ID('dbo._FIAS_SCHEMAS') is not null 
drop table dbo.[_FIAS_SCHEMAS]
go
Declare @schema sysname = N'dbo'
Declare @sql nvarchar(max)
Create table dbo.[_FIAS_SCHEMAS] (x xml, [table “” not found /]
sysname) insert into dbo.[_FIAS_SCHEMAS] (x, [table “” not found /]
) SELECT x = CAST(BulkColumn AS XML).query('.'), '_ACTSTAT' [table “” not found /]
FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ACTSTAT_2_250_08_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_ADDROBJ' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ADDROBJ_2_250_01_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_CENTERST' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_CENTERST_2_250_10_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_CURENTST' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_CURENTST_2_250_07_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_ADDROBJ' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_ADDROBJ_2_250_15_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_HOUSEINT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_HOUSEINT_2_250_17_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_HOUSE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_HOUSE_2_250_16_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_LANDMARK' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_LANDMARK_2_250_18_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_DEL_NORMDOC' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_DEL_NORMDOC_2_250_19_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_ESTSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ESTSTAT_2_250_13_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_FLATTYPE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_FLATTYPE_2_250_23_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_HOUSEINT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_HOUSEINT_2_250_03_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_HOUSE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_HOUSE_2_250_02_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_HSTSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_HSTSTAT_2_250_12_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_INTVSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_INTVSTAT_2_250_11_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_LANDMARK' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_LANDMARK_2_250_04_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_NDOCTYPE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_NDOCTYPE_2_250_20_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_NORMDOC' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_NORMDOC_2_250_05_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_OPERSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_OPERSTAT_2_250_09_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_ROOMTYPE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ROOMTYPE_2_250_24_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_ROOM' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_ROOM_2_250_21_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_SOCRBASE' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_SOCRBASE_2_250_06_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_STEAD' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_STEAD_2_250_22_04_01_01.xsd', SINGLE_BLOB) x Union all SELECT x = CAST(BulkColumn AS XML).query('.'), '_STRSTAT' FROM OPENROWSET(BULK 's01sq03c$filesFIASAS_STRSTAT_2_250_14_04_01_01.xsd', SINGLE_BLOB) x ;WITH XMLNAMESPACES ('http://www.w3.org/2001/XMLSchema' as xs) Select a.[table “” not found /]
,tbl.[root_name] ,tbl.[root_description] ,tbl.[name] ,ROW_NUMBER() over (partition by a.[table “” not found /]
order by 1/0) N ,tbl.[column] ,tbl.[required] ,tbl.[description] ,tbl.[type] ,tbl.[len] ,Case tbl.[type] when N'byte' then N'tinyint' when N'date' then N'date' when N'int' then N'int' when N'string' then Case when tbl.[len] = 36 and (tbl.[column] like N'%ID' or tbl.[column] = N'NORMDOC') then N'uniqueidentifier' when tbl.[len] is Null then N'nvarchar(max)' Else N'nvarchar(' + cast(tbl.[len] as nvarchar(4000)) + N')' END when N'integer' then Case when tbl.[len] > 9 then N'bigint' when tbl.[len] <= 4 then N'smallint' Else N'int' end else N'nvarchar(max)' End [sqltype] ,t.n.query('.') [node] into dbo.[_FIAS] from dbo.[_FIAS_SCHEMAS] a Cross apply a.x.nodes('//xs:attribute') t(n) Cross apply (values -- некоторые поля используются несколько раз, поэтому сделаем так :) ( x.value('(xs:schema[1]/xs:element[1]/@name)', 'nvarchar(255)') ,x.value('(xs:schema[1]/xs:element[1]/xs:annotation/xs:documentation[1]/text())[1]', 'nvarchar(4000)') ,x.value('(xs:schema[1]/xs:element[1]/xs:complexType[1]/xs:sequence[1]/xs:element[1]/@name)', 'nvarchar(255)') ,t.n.value('(./@name)[1]', 'nvarchar(255)') ,t.n.value('(./@use)[1]', 'nvarchar(255)') ,Stuff(Coalesce(t.n.value('(./xs:simpleType/xs:restriction/@base)[1]', 'nvarchar(255)'), t.n.value('(./@type)[1]', 'nvarchar(255)')), 1, 3, '') ,Coalesce(t.n.value('(./xs:simpleType/xs:restriction/xs:length/@value)[1]', 'int') ,t.n.value('(./xs:simpleType/xs:restriction/xs:maxLength/@value)[1]', 'int') ,t.n.value('(./xs:simpleType/xs:restriction/xs:totalDigits/@value)[1]', 'int')) ,Replace( Replace( Replace( Replace( Replace( Replace( Replace( Replace( Replace(t.n.value('(./xs:annotation/xs:documentation)[1]', 'nvarchar(4000)'), ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') , ' ', ' ') ) ) tbl([root_name], [root_description], [name], [column], [required], [type], [len], [description]) -- Посмотрим на результат Select * from dbo.[_FIAS] -- Создадим код для создания таблиц, и запустим его set @sql = ( Select Distinct N';Create table ' + Quotename(@schema) + N'.' + Quotename([table “” not found /]
) + N'(' + Stuff((Select N',' + QUOTENAME(b.[column]) + N' ' + b.[sqltype] + Case b.[required] when 'required' then N' NOT NULL' when 'optional' then N' NULL' End From dbo.[_FIAS] b where b.[table “” not found /]
= a.[table “” not found /]
Order by N ASC For xml path(N''), type ).value(N'.', 'nvarchar(max)'), 1, 1, N'') + N')' from dbo.[_FIAS] a For xml path(N''), type).value(N'.', N'nvarchar(max)') exec (@sql) -- Создадим аннотацию к таблицам и полям Set @sql = ( Select N'; exec sp_addextendedproperty @name=''description'', @value=N''' + a.[root_description] + N''', @level0type =N''Schema'', @level0name = N''' + @schema + N''', @level1type = N''Table'', @level1name = N''' + a.[table “” not found /]
+ N'''' from (Select distinct [table “” not found /]
, [root_description] from dbo.[_FIAS]) a for xml path(N''), type ).value(N'.', N'nvarchar(max)') exec (@sql) Set @sql = ( Select N'; exec sp_addextendedproperty @name=''description'', @value=N''' + a.[description] + N''', @level0type =N''Schema'', @level0name = N''' + @schema + N''', @level1type = N''Table'', @level1name = N''' + a.[table “” not found /]
+ N''', @level2type = N''Column'', @level2name = N''' + a.[column] + N'''' from dbo.[_FIAS] a for xml path(N''), type ).value(N'.', N'nvarchar(max)') exec (@sql) -- Определение ссылки на импортируемую схему update a Set x.modify ('declare namespace xs="http://www.w3.org/2001/XMLSchema"; insert <xs:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="./sqltypes.xsd" /> as first into (xs:schema)[1]') from dbo.[_FIAS_SCHEMAS] a -- Определение корневого аттрибута update a Set x.modify('declare namespace ss="urn:schemas-microsoft-com:mapping-schema"; insert ( attribute ss:is-constant {"1"} ) into (/xs:schema[1]/xs:element[1])') from dbo.[_FIAS_SCHEMAS] a -- Определение ноды, являющейся строкой таблицы и связанной с ней таблицы update a Set x.modify('declare namespace ss="urn:schemas-microsoft-com:mapping-schema"; insert ( attribute ss:relation {sql:column("a.table")} ) into (xs:schema[1]/xs:element[1]/xs:complexType[1]/xs:sequence[1]/xs:element[1])') from dbo.[_FIAS_SCHEMAS] a -- Аннотация полей в схеме -- Т.к. за 1 раз можно модифицировать только одну ноду - придется использовать курсор Declare @table nvarchar(4000) Declare @column nvarchar(4000) Declare cur CURSOR LOCAL FORWARD_ONLY for Select [table “” not found /]
, [column] from dbo.[_FIAS] Open cur FETCH NEXT FROM cur into @table, @column WHILE @@FETCH_STATUS = 0 BEGIN update a Set x.modify('declare namespace ss="urn:schemas-microsoft-com:mapping-schema"; insert ( attribute ss:field {sql:column("t.column")} ,attribute ss:datatype {sql:column("b.sqltype")} ) into (//xs:attribute[@name = sql:column("b.column")])[1]') from dbo.[_FIAS_SCHEMAS] a inner join dbo.[_FIAS] b on a.[table “” not found /]
= b.[table “” not found /]
cross apply (Values(QUOTENAME(b.[column]))) t([column]) Where b.[table “” not found /]
= @table and b.[column] = @column FETCH NEXT FROM cur into @table, @column END CLOSE cur; DEALLOCATE cur; -- Выгрузка схем -- Обратите внимание, путь к выгружаемым схемам - захардкожен! Set @sql = ( Select N'; exec xp_cmdshell ''bcp "Select [x] from [FIAS2].[dbo].[_FIAS_SCHEMAS] where [table “” not found /]
= ''''' + a.[table “” not found /]
+ '''''" queryout "c:filesFIAS' + a.[table “” not found /]
+ '.xsd" -S . -T -w''' from dbo.[_FIAS_SCHEMAS] a for xml path(N''), type ).value(N'.', N'nvarchar(max)') exec (@sql)

Orain besterik ez da geratzen xml fitxategi bakoitzeko kargatzeko prozedurari dagokion eskemarekin deitzea (Paketatu gabeko fitxategiak e:tmp karpetan gordetzen dira, eta diagramak c:filesFIAS-era igo ditugu):

USE FIAS2
GO
Declare @sql nvarchar(max)
if OBJECT_ID('tempdb..#t') is not null
drop table #t
Create table #t ([output] sysname NULL)
insert into #t
exec xp_cmdshell 'dir e:tmp /B'
;With load_data as
(
Select 
'_' + t.x.value('(a[2])', 'nvarchar(255)') [table “” not found /]
,t.x.value('(a[3])', 'date') [fias_date] ,t.x.value('(a[4])', 'uniqueidentifier') [fias_guid] ,a.[output] [file_name] from #t a cross apply (VALUES(Cast('<a>' + Replace(Replace(Replace(Replace(a.[output],'DEL_', 'DEL$'), '_', '</a><a>'), '.', '</a><a>'), '$', '_') + '</a>' as xml))) t(x) Where [output] like 'AS[_]%.xml' ) Select @sql = (Select N';exec [dbo].[spXMLBulkLoad] ''e:tmp' + a.[file_name] + ''', ''c:filesFIAS' + b.[table “” not found /]
+ '.xsd'', ''FIAS2'', ''e:tmperr.xml''' from load_data a inner join [dbo].[_FIAS_SCHEMAS] b on a.[table “” not found /]
= b.[table “” not found /]
For xml path(''), type).value(N'.', N'nvarchar(max)') Exec (@sql)

Fff...

Beno, orain azkenean dena amaitu da.

Hala ere, hauxe esan nahi dizuet, lankide maiteok!
Guztiak besterik gabe funtzionatzen du basatiena poliki-poliki!
Ez naiz taulak eta diagramak sortzeaz ari, noski. Eta kargatzeari buruz.

Proba ingurunean, deskargak ia eraman ninduen 5 ordu (sic!!!). Eta hau taula indexatu gabe.

Aldi berean, I/O sistemaren karga 3 MB/s-ko mailan zegoen, eta nukleo pare bat baino ez ziren erabiltzen.

Helbide-objektuen karga segundoko 3 mila erregistro baino gehiagoko abiaduran gertatu da, etxeak kargatzea - ​​segundoko 8 mila baino gehiagoko abiaduran. Eta minutu batez, 60 milioi daude.
Ezin dut esan zerrekin lotuta dagoen; oraindik kodearekin eta, itxuraz, VM ezarpenekin aldatu beharko dut.

Kontuan izan karga pilaka egiten dela. Eta orduan bakarrik bere AOID bakoitzeko indize multzokatuak sortu behar ditu.

Zeren GUIDak dira, hobe da horrela egitea, izan ere, kargatu AURRETIK kluster-indizeak sortzen badituzu, irteera ehuneko 50 inguru zatituta dagoen taula bat izango da, ez gutxiago. Tira, hobe da kargatu ondoren indizeak sortzea ere, indizeetan txertatzeak are motelagoa egiten duelako kargatzea.

Horregatik nire taulen izenak azpimarra ( _ ) batekin hasten dira. Lehenik datuak haietan kargatuko nituzkeela suposatu zen, gero xede-taulen indizeak birsortuko nituzkeela, eta gero isilean Alter table switch bat egingo nuela.

Erreparatu ere FIAS tauletako eremuetarako datu-mota guztiz optimoei.
Adibidez, int erabiliz, non tinyint nahikoa den, edo nvarchar zenbakizko balioak soilik gorde behar diren eremuetan, hala nola eskualde-kode bat edo OKATO.
Beraz, diagrametan:-(.

Dena den, ezerk ez dizu eragozten metadatuen taula, [dbo].[_FIAS] sortu ondoren, zure eskuekin zulatzea eta sintonizazioa egitea, eta orduan bakarrik abiarazte-eskema berriak sortzea zuzendutako metadatuetan oinarrituta.

Beno, oraindik ezin baduzu hain karga motela kendu, ziurrenik dbf-tik kargatzeko aukerara itzuli beharko duzu, eta azkenean akatsak dbf txikietan aukeratu. Eta beste artikulu bat idatzi.

dbf 8 haritan kargatu zen normalean ordu 1 eta zentimo batean, eta beste ordu inguru igaro zen taula indibidualak helburu tauletan batzen eta haietan indizeak eraikitzen.

... Tira, edo, azkenik, atera eskuak LJJtik... eh... aphedron, eta azkenik egin datu-mailako aplikazio normal bat, eta kargatu datuak, pertsona arrunt guztiak bezala, SSIS bidez.

Baina hori guztiz bestelako istorio bat da.

Scriptak eta xsd eskemak

Lotura interesgarriak:

→ FIAS

Txakurrarekin argazkia ez da nirea :)

Iturria: www.habr.com

Gehitu iruzkin berria