亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

層次關系表格,不用遞歸,快速檢索。HierarchyId

2024-07-21 02:49:38
字體:
來源:轉載
供稿:網友
層次關系表格,不用遞歸,快速檢索。HierarchyId

最近這幾天寫了個T4自動實現EF code first和Ado的存儲過程。使用過程中發現了一個Sql的類型為HierarchyId??吹綍r真是百思不得齊姐。算了查一下MSDN吧。從微軟官網找到了HierarchyId類型。悲催了。這個字段沒有對應C# CLR類型。使用EF6時報錯,提示我應該是用Byte[]類型,執行一遍程序。還是有錯誤,算了谷歌吧。谷歌了一下,發現有解決方案了,什么HierarchyId而且不是SQLTypes的HierarchyId,哦 EF沒有找到,最后Nuget獲取到了 EntityFrameWork.HierarchyId。OK完美運行,查詢出來了。

HierarchyId到底是什么呢?

HierarchyId是SQL Server 2008的一個重要新增特性。主要解決的問題是擁有層次關系的表格。例如文檔結構圖。我們一般會用一個Document表保存文檔數據,而每個文檔則又可能會有相應的上級文件夾。以前要得到某個文件的所有上級,或者某個文件所有下級,通常所采取的方法都是遞歸。SQL Server 2005開始支持的CTE從一定程序上方便了該工作的實現。

例子就用微軟的AdventureWorks2012里面的PRoduction.Document:

image

創建表語句如下:

CREATE TABLE [Production].[Document]( [DocumentNode] [hierarchyid] NOT NULL, [DocumentLevel] AS ([DocumentNode].[GetLevel]()), [Title] [nvarchar](50) NOT NULL, [Owner] [int] NOT NULL, [FolderFlag] [bit] NOT NULL, [FileName] [nvarchar](400) NOT NULL, [FileExtension] [nvarchar](8) NOT NULL, [Revision] [nchar](5) NOT NULL, [ChangeNumber] [int] NOT NULL, [Status] [tinyint] NOT NULL, [DocumentSummary] [nvarchar](max) NULL, [Document] [varbinary](max) NULL, [rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL, [ModifiedDate] [datetime] NOT NULL, CONSTRAINT [PK_Document_DocumentNode] PRIMARY KEY CLUSTERED ( [DocumentNode] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],UNIQUE NONCLUSTERED ( [rowguid] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

其中 GetLevel 為 hierarchyid 數據類型的方法;初次之外還有

image

具體大家可以參考msdn官方文檔。

那么插入某個節點的數據怎么辦呢?

官方也給了辦法 就是先查詢父節點下最大子節點

然后創建一個新的子節點

declare @HyId hierarchyid=父節點;declare @NewHyId hierarchyid;

select @NewHyId=@HyId.GetDescendant(MAX(DocumentNode),null) from DocumentWhere DocumentNode_Id.GetAncestor(1)=@HyId --創建一個新的節點

select @NewHyId.ToString()

然后將新的節點添加到數據庫中。希望微軟以后能添加數據類型到CLR和能自動生成新的hierarchyid根據傳入的父hierarchyid

當然微軟官方有索引優化建議,希望大家去看一下

查詢時可以使用SQL類型到C#


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色妞一区二区三区| 欧美整片在线观看| 欧美性xxxx极品hd欧美风情| 97福利一区二区| 欧美怡春院一区二区三区| 久久久亚洲精选| 国产亚洲精品久久久久久牛牛| 亚洲国产成人在线播放| 中文字幕在线国产精品| 亚洲一区第一页| 日本亚洲欧美成人| 中文字幕视频一区二区在线有码| 国模私拍一区二区三区| 久久综合国产精品台湾中文娱乐网| 亚洲一区中文字幕在线观看| 成人免费网站在线| 欧美日韩精品在线视频| 亚洲成人激情在线| 中文欧美在线视频| 性欧美办公室18xxxxhd| 亚洲成人三级在线| 中文字幕日本精品| 国产精品一二三在线| 欧美日韩一区二区免费在线观看| 国产精品电影在线观看| 国产日韩av在线播放| 夜夜躁日日躁狠狠久久88av| 91美女高潮出水| 日本精品va在线观看| 国产亚洲欧洲高清| 国产999在线| 欧美夫妻性生活xx| 午夜精品久久久久久久男人的天堂| 亚洲一二三在线| 国产美女扒开尿口久久久| 亚洲欧美激情精品一区二区| 日韩高清人体午夜| 51视频国产精品一区二区| 国产视频观看一区| 粉嫩av一区二区三区免费野| 亚洲精品视频二区| 性欧美亚洲xxxx乳在线观看| 亚洲国产精品va| 69视频在线播放| 欧美激情性做爰免费视频| 日韩av一区二区在线观看| 欧美在线视频在线播放完整版免费观看| 亚洲国产91色在线| 亚洲自拍偷拍色片视频| 亚洲成人久久一区| 亚洲另类欧美自拍| 亚洲自拍另类欧美丝袜| 日本91av在线播放| 日韩小视频在线| 亚洲视频欧美视频| 精品国产一区二区三区四区在线观看| 欧美视频不卡中文| 国产成人在线一区| 日韩动漫免费观看电视剧高清| 在线播放国产一区二区三区| 欧美日韩精品在线| 国产99久久精品一区二区永久免费| 色妞一区二区三区| 色哟哟亚洲精品一区二区| 国产欧美精品一区二区三区-老狼| 黑人极品videos精品欧美裸| 黄网动漫久久久| 久久久久久久久久亚洲| 欧美日韩在线视频观看| 美女啪啪无遮挡免费久久网站| 欧美日韩一二三四五区| 国产亚洲一级高清| 欧美高清视频在线| 国产美女搞久久| 亚洲天堂av在线免费| 91成人国产在线观看| 97在线免费观看| 久久伊人精品一区二区三区| 欧美成人免费一级人片100| 国产精品一区二区三| 欧美在线xxx| 亚洲在线www| 国产经典一区二区| 91精品国产91久久久| 欧日韩不卡在线视频| 疯狂做受xxxx欧美肥白少妇| 成人免费午夜电影| 青草青草久热精品视频在线网站| 久久综合电影一区| 亚洲伊人第一页| 日韩中文在线中文网在线观看| 九九热这里只有精品免费看| 国产美女主播一区| 色香阁99久久精品久久久| 国产精品久久二区| 美日韩精品免费观看视频| 亚洲理论片在线观看| 国产精品aaa| 亚洲电影av在线| 麻豆精品精华液| 国产丝袜一区二区| 国产成人精品免费视频| 中文字幕亚洲情99在线| 亚洲欧洲激情在线| 91国偷自产一区二区三区的观看方式| 中文字幕日韩精品有码视频| 欧美午夜激情在线| 国产成人高清激情视频在线观看| 亚洲国产日韩欧美在线动漫| 91老司机在线| 成人精品视频在线| 欧美裸体男粗大视频在线观看| 日本成熟性欧美| 米奇精品一区二区三区在线观看| 国产日韩欧美另类| 亚洲午夜av久久乱码| 欧美福利视频在线观看| 久久亚洲国产精品成人av秋霞| 国产日韩在线看片| 久久精品国产亚洲精品| 日本国产高清不卡| 欧美大片在线看免费观看| 久久精品国产清自在天天线| 亚洲一区二区中文字幕| 欧美日韩加勒比精品一区| 日韩精品在线私人| 久久69精品久久久久久久电影好| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品免费在线免费| 亚洲精品欧美极品| 欧美疯狂xxxx大交乱88av| 影音先锋日韩有码| 色婷婷成人综合| 国产偷亚洲偷欧美偷精品| 91久久精品国产91久久性色| 亚洲第一区在线| 亚洲欧洲黄色网| 91chinesevideo永久地址| 久久久亚洲影院| 欧美性猛交99久久久久99按摩| 日韩精品在线视频美女| 亚洲第一区中文99精品| 最近的2019中文字幕免费一页| 91精品国产91久久| 欧美在线视频导航| 丝袜美腿精品国产二区| 性欧美xxxx| 日韩欧美中文免费| 久久综合久久美利坚合众国| 国产午夜精品美女视频明星a级| 欧美视频在线观看免费网址| 91亚洲永久免费精品| 97av在线视频免费播放| 亚洲free性xxxx护士hd| 国产精品国产三级国产aⅴ浪潮| 国产日本欧美一区二区三区在线| 日韩av最新在线观看| 亚洲福利影片在线| 91人成网站www| 精品国产依人香蕉在线精品| 国产精品视频精品| www高清在线视频日韩欧美| 欧美日韩视频免费播放| 亚洲精品久久久久|