FIAS کي MSSQLSERVER تي ڊيٽابيس ۾ لوڊ ڪندي بهتر ڪيل (SQLXMLBULKLOAD) اوزار استعمال ڪندي. اهو ڪيئن (شايد) نه ڪيو وڃي

قسط:
"جڏهن توهان جي هٿن ۾ هڪ هامر آهي، توهان جي چوڌاري هر شيء ناخن وانگر نظر اچي ٿي."

FIAS کي MSSQLSERVER تي ڊيٽابيس ۾ لوڊ ڪندي بهتر ڪيل (SQLXMLBULKLOAD) اوزار استعمال ڪندي. اهو ڪيئن (شايد) نه ڪيو وڃي
هڪ دفعي ائين محسوس ٿيو - گذريل جمعي تي، آفيس جي پاڙي ۾ گھمڻ دوران، ملعون باسن کي ان ڳالهه جو خدشو پيدا ٿيو ته آئون بيڪار ۽ ٻڪرين ۽ ٻڪرين جي خيال ۾ وقت گذاري رهيو آهيان.

- ڇو نه توهان FIAS ڊائون لوڊ ڪريو، منهنجا پيارا دوست! - اختيارين چيو. ”ڇاڪاڻ ته اسان جا ڪاروباري يونٽ ان کي ڊائون لوڊ ڪرڻ جي عمل کي پسند نٿا ڪن. هڪ ڊگهي وقت تائين، چون ٿا ته اها لوڊ ٿي رهي آهي، گروسري سرور کي لوڊ ڪري رهيو آهي، ۽ دوست جيڪو لوڊ ڪرڻ جو عمل لکي ٿو، ٻئي ڏينهن ڇڏي ويو، جهڙوڪ ٽي سال اڳ ۾.
ان کان علاوه، اتي موجود هر شيءِ کي گهڻو وقت اڳ ٻيهر ڪرڻ جي ضرورت آهي، تنهن ڪري ان کي وٺو، پنهنجي لاءِ هڪ بنياد ٺاهيو ۽ FIAS جي وقتي ڀرڻ کي يقيني بڻايو. هر شي، جيئن اهي چون ٿا، دير نه ڪريو!

هتي مون کي اهو چوڻ گهرجي ته منهنجو پروگرامنگ سان تمام گهڻو تعلق آهي، ڇاڪاڻ ته. مان بلڪه هڪ DBA آهيان. جيتوڻيڪ، ٻئي طرف، اڳوڻي تيار ڪيل معلومات جي وڏي صفن کي لوڊ ڪرڻ صرف DBA جو ڪم آهي، nest pa؟

”اچو... اسان هينئر ئي ڪنداسين،“ مون اختيارين کي ٻڌايو، ۽ FIAS جي ويب سائيٽ ڏانهن ڊوڙي ويس، پنهنجي آستين کي مٿي ڪندي.

”اٽڪل! ها، اتي ڊي بي ايف آهي!" - مون سوچيو، خوشيءَ سان پنهنجا هٿ ڌوئيندي، هڪ ئي وقت هڪ معياري ”ڊي فيڪٽو“ زپ آرڪائيو جي غير موجودگيءَ تي حيران ٿي ويس، ۽ ان جي ابتڙ، آرج جي موجودگي، جيڪو ڪافي عرصي کان بوس ۾ مري چڪو آهي، ۽ هڪ مالڪ معافي، کليل، يقيناً. , 7zip [پر جيڪو اڃا تائين پاور شيل استعمال ڪندي ڊمپپريس نه ٿو ڪري سگھجي Expand -Archive]. اهي. pure powershell'om ان کي توهان ڊائون لوڊ نه ڪندا ۽ توهان کي انپيڪ نه ڪندا. اسان کي سرور تي هر قسم جي گندگي کي گڏ ڪرڻو پوندو. بهرحال.

مون ڪيترن ئي سالن کان dbf فائلن جي ماس متوازي لوڊ ڪرڻ لاءِ هڪ ٽول ڪٽ لکيو آهي، تنهنڪري اتي ڪو مسئلو نه هجڻ گهرجي.

مون dbfs کي انپيڪ ڪيو، ڊائون لوڊ پروگرام شروع ڪيو، ۽ جڏهن ڊيٽا لوڊ ٿي رهي هئي، مون هڪ اسڪرپٽ اسڪيچ ڪيو جنهن ۾ انهن جي وابستگي جي مطابق، الڳ "تقريبن هڪجهڙائي" پليٽن کي هڪ ۾ چمڪيو ويو.

مون ڊيٽا کي اپلوڊ ڪيو، ۽ مون اڳ ۾ ئي انتظاميا جي آفيس ڏانهن وڃڻ چاهيو، ٽي ايس، لاوريلز، پر شيطان مون کي ڇڪايو ته درآمد جا نتيجا ڏسڻ لاء!

FIAS کي MSSQLSERVER تي ڊيٽابيس ۾ لوڊ ڪندي بهتر ڪيل (SQLXMLBULKLOAD) اوزار استعمال ڪندي. اهو ڪيئن (شايد) نه ڪيو وڃي

- اڙي. WTF!!!؟؟؟

FIAS کي MSSQLSERVER تي ڊيٽابيس ۾ لوڊ ڪندي بهتر ڪيل (SQLXMLBULKLOAD) اوزار استعمال ڪندي. اهو ڪيئن (شايد) نه ڪيو وڃي

وڏيون ٽيبلون عام طور تي لوڊ ڪيون وينديون آهن، ۽ ننڍيون جدولن ۾ ڪيڙا هوندا آهن.

۽ مان ان سڄي ڳالهه مان ايترو ته اداس ۽ غمگين ٿي ويس جو مون بهادريءَ سان پاڻ کي پاڻ سان گڏ کنيو ۽ ديرپا ۽ پنهنجا سڌو فرض ادا ڪيا. مان حقيقت ۾ ٽوٽل dbfs سان گڏ گندگي ڪرڻ نه چاهيندس.

مون ٻن ڏينهن لاءِ دير ڪئي، جيستائين درخواستون ختم نه ٿيون، ۽ اختيارين وري افق تي لهي ويا، مقدس سوال سان ”اسان ڇا ڪري رهيا آهيون؟“.

۽، جيئن ته جواب ڏيڻ لاءِ ڪجھ به نه هو، ۽ مان اڃا تائين dbf سان گڙٻڙ نه ڪرڻ چاهيان ٿو، مون فيصلو ڪيو ته FIAS کي xml کان لوڊ ڪيو، خاص طور تي، جيئن اهي چون ٿا، اهو سجيل، فيشن، نوجوان آهي، ۽ "dbf هڪ مرڻ واري شڪل آهي. ”.
ان تي، مون کي ڊگهي تعارفي monologue ختم ڪرڻ ڏيو، ۽ ڪاروبار ڏانهن وڃو.

قسط 2:
ها، اهو پڻ ممڪن آهي. 🙂

تنهن ڪري، اهو استعمال ڪندي لوڊ ڪرڻ جو فيصلو ڪيو ويو SQLXMLBULKLOAD - هڪ شاندار لائبريري، صرف ٺهيل xml فائلن جي بلڪ (بلڪ) ڀرڻ لاءِ ٺهيل آهي.
ان کي استعمال ڪرڻ لاء، توهان کي ضرورت آهي скачать ۽ انسٽال ڪريو SqlXml 4.0 سروس پيڪ 1 (SP1) لائبريري.

جڏهن ته، FIAS جي صورت ۾، "ڍانچي" خاص طور تي طلب ۾ ناهي. ڇاڪاڻ ته فائلون اتي ڪجھ به نه آھن جيڪي xml نه آھن ... اھي آھن، يقينا، xml، پر، حقيقت ۾، اھي ڊيٽا سان گڏ فليٽ جدول آھن، ھر فائل ۾ ھڪڙي جدول آھي.

سائيٽ تي sql.ru I مليو طريقو spXML بلڪ لوڊ پيارا استعمال ڪندڙ جونيئر, ته جيئن SQL سرور مان ٻاهر نه نڪرو، ۽ CLR تي SQLXMLBULKLOAD کي ڪال به نه لکو.

هتي ان جو ٿورڙو تبديل ٿيل نسخو آهي:

spXML بلڪ لوڊ

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

جڏهن ته، هن لائبريري کي استعمال ڪندي xml بلڪ لوڊ ڪرڻ لاءِ، تشريح ٿيل xsd اسڪيما گهربل آهن، جنهن ۾، حقيقت ۾، اهو ظاهر ڪيو ويو آهي ته ڪيئن ۽ ڪٿي لوڊ ڪيو ويو آهي.

ذڪر ڪيو ويو آهي ته اهڙيون اسڪيمون آهن، "پر رڳو پراڻيون" - مون کي اڳ ۾ ئي درجن جي سائيٽن تي مليا آهن، پر ڪٿي به مون کي پنهنجو پاڻ کي اسڪيمون نه مليو. ۽ ناراض ٿي ويو.

دستي طور تي ڊيٽا درآمد ڪرڻ لاءِ FIAS ويب سائيٽ تي موجود اسڪيم کي تبديل ڪرڻ ڏکيو نه آهي.
پر ... مجموعي طور تي - 271 فيلڊ آهن! خير هي آهي ڪيترو توهان کي ويهڻ ۽ بيهڻ جي ضرورت آهي!

تنهن ڪري، مون انهن اسڪيمن کي خودڪار طريقي سان تبديل ڪرڻ جو فيصلو ڪيو، ساڳئي وقت ڊيٽابيس ۾ ٽارگيٽ ٽيبل ٺاهڻ.

SQLXMLBULKLOAD خود بخود هڪ تشريح ٿيل اسڪيما مان لوڊ ٿيل ڊيٽا لاءِ ٽيبل ٺاهي سگھي ٿو، پر، ٻئي طرف، جيڪڏهن مان هي اسڪيما ڪريان ٿو، ته پوءِ ڇو نه اهي ٽيبل پاڻ ٺاهيون، جيئن مون کي ضرورت آهي؟

مون ڊائون لوڊ ڪيو xsd اسڪيمون FIAS ويب سائيٽ تان ۽ انهن جو تجزيو ڪيو خالص بصري طور.

خوشقسمتيء سان، اهي سڀ هڪ ئي قسم جا آهن، تنهنڪري توهان هڪ ٽارگيٽ ڊيٽابيس ٺاهي سگهو ٿا ۽ صرف چند تمام پيچيده سوالن سان لوڊ ڪرڻ لاء اسڪيما پاڻ کي تبديل ڪري سگهو ٿا.

1. هڪ خالي FIAS2 ڊيٽابيس ٺاهيو.
ڇو "2"؟ خير، ڇاڪاڻ ته "1" dbf-ok کان هڪ بنياد هو. ٿي سگهي ٿو اسان ان بابت بعد ۾ ڳالهائينداسين.

ڊي بي تخليق اسڪرپٽ FIAS2

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. اچو ته ھن ڊيٽابيس ۾ ڪجھ پليٽون ٺاھيون.

پهرين پليٽ xsd اسڪيمن تي مشتمل هوندي، ۽ ٻيو اصل ۾ ڊيٽا اسڪيما هوندو جيڪو انهن xsd اسڪيمن مان حاصل ڪيو ويندو.

xsd اسڪيما، حقيقت ۾، عام xml فائلون آھن، تنھنڪري توھان انھن سان ڪم ڪري سگھوٿا جيئن عام xml فائلن سان.

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]

درخواست تي وڌيڪ:

پهريون هڪ لوڊ ڪري ٿو xsd اسڪيما کي سرور تي ٽيبل ۾، طريقي سان هر اسڪيما کي بيان ڪندي [ٽيبل "" نه مليو /] فيلڊ ۾
- ٽيبل جو نالو جنهن ۾ آئون لاڳاپيل ٽيبل مان ڊيٽا لوڊ ڪرڻ چاهيان ٿو.

يقينن، اهو ممڪن ٿيندو ته هر دفعي اسڪيما تبديل ٿي وڃن، انهن کي ڊائون لوڊ ڪري، ڪنهن فولڊر ۾ رکي ۽ انهن جي مطابق ٽارگيٽ ٽيبل جي جوڙجڪ کي ٻيهر ۽ خودڪار طريقي سان ٺاهيو وڃي، ۽ ٻيهر ۽ خودڪار طريقي سان اسڪيمن کي تبديل ڪري، پر t .to. ڍانچي تمام گهٽ تبديل ٿي، آخري ڀيرو تبديل ٿي - اڳ ۾ ئي سال 16 ۾ - اهڙي خودڪار مشين ٺاهڻ لاء انتهائي سست آهي. CTRL+C - CTRL+V تي 30 سيڪنڊ خرچ ڪرڻ بهتر آهي.

تنهن ڪري، ڊاگرام سان ٽيبل ۾ لوڊ ڪرڻ تمام سخت ڪوڊ ٿيل آهي، ۽ لوڊ ٿيل فائلن جا رستا، گڏوگڏ ٽيبل جا نالا، هٿ سان لکيل آهن.

ٻيو سوال اسڪيما مان ٽيبل جي جوڙجڪ بابت معلومات ڪڍي ٿو. مون 3nf سان پريشان نه ڪيو، پر ان کي ھڪڙي ٽيبل جي طور تي ترتيب ڏنو.

رستي جي ذريعي، هن ٽڪري تي ڌيان ڏيو (+)

گهڻو ڪري، شروعات ڪندڙ سوال پڇندا آهن: ڇا اهو ممڪن آهي ته هڪ سوال ۾ ڪجهه پيچيده اظهار جو جائزو وٺو 1 ڀيرا، ۽ پوء ان کي ڪيترن ئي هنڌن تي ٻيهر استعمال ڪريو. ها، توهان ڪري سگهو ٿا. هن وانگر، مثال طور:

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])

ڪجھ حدن سان ڪم ڪري ٿو، يقينا. پر، هڪ دفعو توهان ان کي استعمال ڪرڻ شروع ڪيو، توهان جلدي سمجهي سگهندا ته اهي ڇا آهن.

3. اچو ته اسڪرپٽ ٺاھيون جيڪي ٺاھيون FIAS جدولون، ۽ پوءِ انھن کي ھلائي پاڻ ٺاھيون.


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)

اهو سڀ ڪجهه ڪرڻ لاءِ ڪير تمام سست آهي - ٽيبل ٺاهڻ لاءِ اسڪرپٽ ۽ FIAS اسڪيمون بيان ڪيل مضمون جي آخر ۾ شامل ڪيا ويندا.

جدول ٺاهڻ لاءِ سوال، جيڪو سوال جو نتيجو آهي

;
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 ۾ جدولن ۽ شعبن جي عام وضاحت آهي، اسان ان کي استعمال ڪنداسين ۽ جدولن ۽ انهن جي شعبن جي وڌايل خاصيتن ۾ ساخت جي وضاحت ٺاهينداسين:

-- Создадим аннотацию к таблицам и полям
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)

هتي اهو ڪوڊ آهي جيڪو ڪم جي نتيجي ۾ نڪتو ۽ عمل ڪيو ويو

;
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. اسان پاڻ اسڪيمن کي تبديل ڪريون ٿا:

-- Определение ссылки на импортируемую схему
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. ۽ نيٺ، ڊمپ ڪريو xsd اسڪيمن کي ڊسڪ ۾ وڌيڪ استعمال لاءِ:

-- Выгрузка схем
-- Обратите внимание, путь к выгружаемым схемам - захардкожен!
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)

سڀ! :-)))

ھتي اھو سڄو سوال آھي جيڪو ٺاھي ٿو جدولن، انھن جا تفصيل، اسڪيم کي تبديل ڪري، ۽ انھن کي ڊمپ ڪري ڊسڪ ۾:

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)

هاڻي اهو صرف هر xml فائل لاء لوڊ طريقيڪار کي لاڳاپيل اسڪيما سان سڏڻ لاء رهي ٿو (ان پيڪ ٿيل فائلون پاڻ e:tmp فولڊر ۾ ذخيرو ٿيل آهن، ۽ اسان اسڪيمن کي اپ لوڊ ڪيو c:filesFIAS):

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)

ايف ايف ايف…

خير، هاڻي اهو سڀ ڪجهه ختم ٿي چڪو آهي.

بهرحال، اهو آهي جيڪو مان توهان کي ٻڌائڻ چاهيان ٿو، پيارا ساٿيو!
هي سڀ ڪم سادو آهي جهنگلي آهستي آهستي!
مان ٽيبل ۽ اسڪيما ٺاهڻ بابت نه ڳالهائي رهيو آهيان، يقينا. ۽ ڊائون لوڊ جي باري ۾.

ٽيسٽ ماحول ۾، ڊائون لوڊ مون کي لڳ ڀڳ ورتو 5 ڪلاڪ (sic!!!). ۽ هي بغير جدول جي ترتيب جي آهي.

ساڳئي وقت، I / O سسٽم لوڊ 3 Mb / s جي سطح تي هو، ۽ صرف ٻه ڪور شامل هئا.

ايڊريس جون شيون 3 هزار رڪارڊ في سيڪنڊ کان وڌيڪ نه جي رفتار سان لوڊ ڪيون ويون، گھر 8 هزار في سيڪنڊ کان وڌيڪ جي رفتار سان لوڊ ڪيا ويا. ۽ آهن، هڪ منٽ لاءِ، 60 ملين.
اھو ڇا سان ڳنڍيل آھي - مان نٿو چئي سگھان، مون کي اڃا تائين ڪوڊ سان ڳنڍڻو پوندو، ۽ ظاهري طور تي، وي ايم سيٽنگن سان.

مهرباني ڪري نوٽ ڪريو ته لوڊشيڊنگ ۾ ڪيو ويندو آهي. ۽ صرف پوءِ اهو سمجهيو وڃي ٿو ته انهن جي ڪنهن به AOID تي ڪلسٽرڊ انڊيڪس ٺاهي.

ڇاڪاڻ ته اهي GUIDs آهن، اهو صرف اهو ڪرڻ بهتر آهي، ڇاڪاڻ ته جيڪڏهن توهان لوڊ ڪرڻ کان اڳ ڪلسٽرڊ انڊيڪس ٺاهيندا آهيو، پيداوار هڪ ٽيبل هوندو جيڪو تقريبا 50 سيڪڙو کان گهٽ، گهٽ نه. خير، اهو پڻ بهتر آهي ته لوڊ ڪرڻ کان پوء انڊيڪس ٺاهيو، ڇاڪاڻ ته انڊيڪس ۾ شامل ڪرڻ سان لوڊشيڊنگ اڃا به سست ٿي ويندي آهي.

ان ڪري منهنجي ٽيبل جا نالا انڊر اسڪور (_) سان شروع ٿين ٿا. مون کي پهريان ان ۾ ڊيٽا لوڊ ڪرڻي هئي، پوءِ ٽارگيٽ جدولن جي انڊيڪس کي ٻيهر ٺاهيو، ۽ پوءِ آرام سان Alter ٽيبل سوئچ ڪريو.

FIAS جدولن جي شعبن لاءِ بھترين ڊيٽا جي قسمن تي ڌيان نه ڏيو.
مثال طور، استعمال ڪرڻ int، جتي tinyint ڪافي آهي، يا nvarchar انهن شعبن ۾ جتي صرف عددي قدرن کي ذخيرو ڪرڻ گهرجي، جهڙوڪ علائقي جو ڪوڊ يا OKATO.
پوء ڊراگرام ۾ :-(.

تنهن هوندي، ميٽا ڊيٽا ٽيبل ٺاهڻ کان پوءِ، [dbo] [_FIAS]، توهان کي پنهنجي هٿن سان ان ۾ کوٽڻ ۽ ان کي ٽيون ڪرڻ کان، ۽ صرف پوءِ، درست ڪيل ميٽا ڊيٽا جي بنياد تي نئين بوٽ اسڪيمن ٺاهڻ کان، ڪجهه به نه روڪيندو.

خير، جيڪڏهن توهان اڃا تائين اهڙي سست لوڊشيڊنگ کان نجات حاصل نه ڪري سگهو ٿا، ظاهر آهي، توهان کي ڊي بي ايف کان لوڊ ڪرڻ سان اختيار ڏانهن موٽڻو پوندو، ۽ آخرڪار، ننڍن ڊي بي ايف ۾ ڪيچ ڪڍيو. ۽ ٻيو مضمون لکو.

8 موضوعن ۾ dbf عام طور تي 1 ڪلاڪ ۾ هڪ قلمي سان لوڊ ڪيو ويو، ۽ انفرادي جدولن کي ٽارگيٽ جدولن ۾ ضم ڪرڻ ۽ انهن تي انڊيڪس ٺاهڻ ۾ اٽڪل هڪ ڪلاڪ لڳي ٿو.

... چڱا، يا، آخرڪار، پنهنجا هٿ zhzhzh کان ٻاهر ڪڍو ... uh ... aphedron، ۽ آخرڪار هڪ عام ڊيٽا ٽائر ايپليڪيشن ٺاهيو، ۽ ڊيٽا لوڊ ڪريو، سڀني عام ماڻهن وانگر، SSIS ذريعي.

پر اهو هڪ مڪمل طور تي مختلف ڪهاڻي آهي.

اسڪرپٽ ۽ xsd اسڪيما

لا linksاپيل لنڪس:

→ FIAS

ڪتي سان تصوير منهنجي ناهي 🙂

جو ذريعو: www.habr.com

تبصرو شامل ڪريو