数据仓库中的排名数据怎样导入到关系表中

jackyzhao213 2016-01-26 11:45:47
需求:
某一维度的排名统计的数据的我要放到一个关系表中方便查询,不知道怎么办。
我在SSIS中看好像没有对应的任务。
...全文
1809 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
IvanO_O 2017-03-03
  • 打赏
  • 举报
回复
引用 2 楼 qw0907 的回复:
kettle数据迁移!
此法简单解决
快跑蜗牛哥 2016-09-10
  • 打赏
  • 举报
回复
kettle数据迁移!
jackyzhao213 2016-01-26
  • 打赏
  • 举报
回复
也就是如何导出数据仓库中的统计数据,有什么工具吗?或者导出成xml
斯帕汽配管理系统:   如果你做汽配有些年头,一定听过运通四方,他的管理效率非常高,至今仍是全国汽配渠道市场龙头企业,而斯帕软件公司前身正是运通四方的子公司。斯帕软件是专注于汽配行业十多年的软件品牌,全国超过6000家大小企业使用该软件。其软件有很突出的操作性,高效性,稳定性,独特的自动拍照功能和编码知识库采集,让各大汽配商轻松地解决了人才的问题。丰富的视频教程,使操作更加简单明了。方方面面都是根据汽配行业的贴身需求开发,全快捷键操作迎合高速节奏市场步伐,的确是为汽配行业做出了很大的贡献。   I、详细介绍:   功能列表:   一、软件特点:   斯帕汽配管理系统是一套汽配行业的小企业管理软件,具有专门针对商品进、销、存、财务(汽配店)流程管理的管理软件(包括商品/配件管理、财务管理、客户关系管理等);功能模块包括配件的进货、销售、库存管理、财务管理、客户关系管理、短信群发、经营日报表、经营状况表、月结盘点表等综合报表统计,提供一系列的优质服务。销售单提供多样化的打印格式,基础资料提供导入与导出功能、数据库备份与恢复、数据清空功能、还可将所有单据导出Excel。功能强大、通用性、界面友好、操作简便、功能实用。更是进销存软件、汽车配件软件、客户管理软件的完美结合而成的一款专业小企业通用管理软件。   系统专业先进稳定,模块设计简洁实用,共有进销(配件)业务、进销(配件)报表、库存管理、客户管理、财务管理、系统管理六大功能模块,每一个功能在设计上都本着“简单、实用、易学、高效”的原则,力求操作直观方便,为管理节省人力、物力。   二、主要功能介绍:   1) 商品(配件)进销存管理:   汽车配件管理主要是对配件的销售、进货、退货、库存管理等进行记录和统计。使烦琐的配件管理业务规范化、透明化。在使用系统的配件管理前,需要先对仓库的配件库存信息进行期初的盘库建档处理,以建立与实际仓库库存相符的真实配件进销存管理。只需把汽车配件的名称、数量信息录入相应仓库即可。   1.1 订货单:   也叫采购订货单,可在每月制定相应的采购计划,根据仓库情况和出库情况制作订货单。补充库存计划定期制定一次,如每月月底。补充库存计划,是针对常备库存零件,为了满足日常销售的需要而补充的订货。如果销售是非常平稳和安全库存量足够的话,那么,定期的补充库存计划就可以满足日常销售的需要。但是,由于销售量的起伏性,可能使零件突然缺档。因此,我们每天还应当巡查库存,看看哪些零件的库存已经低于库存低限,对于低于库存低限的零件,应当马上制定紧急订货计划。针对非常备库存的零件,只要发现客户有订货,在紧急订货计划也要马上反应。在订货入库可以根据供应商调出所有的订货单,有选择性的入库。也可以在采购入库单直接选订货单整单入库。   1.2 入库管理:   入库管理包括订货入库、采购入库、工具入库、扫描入库、调拨入库、销售退货入库、领料退料、盘盈入库(直接入库),录入配件的供应商、配件名称、编码、规格、价格、数量以及所入的仓库信息,财务复核后进行入帐处理,财务管理模块会生成相应的入库付款记录。   其采购入库一般用于未做订货单直接入库,或是一些零散的入库;工具入库指企业内部用的工具、常用消耗性办公用具等;扫描入库针对那些经常大批量入库的用户,可以先在库存定义好条形码,再到扫描入库用条码枪扫描配件入库,提高入库效率;入库退货单对发现有问题配件进行退货处理。   1.3 客户订单:   如果分销商或客户向公司订货,一般是通过发传真、电话、EXCEL表等方式发来,然后,我们可以将订单录入到本软件的销售订单,客户订单又可以转化为本软件的销售单。在订单销售可以根据客户调出所有未出库的客户订单有选择性的出库,订单销售完成后会自动改写已出库数量。也可以在销售单直接选客户订单整单出库。   1.4 出库管理:   出库管理包括订单销售、销售单出库、领料单出库、扫描销售出库、入库退货出库、调拨出库、盘亏出库(直接减库存)等,录入配件名称、编码、规格、价格、数量、仓库及相关信息,复核后系统自动进行入帐处理,财务管理模块会生成相应的销售收款记录等。 其销售单出库一般用于未做订单直接出库,或是一些零散的出库;工具出库指企业内部用的工具、常用消耗性办公用具领用登记等;扫描销售针对那些经常大批量入库的用户,在扫描销售出库用条码枪扫描配件出库,提高出库效率;入库退货单出库是对发现有问题配件进行退货处理。   1.5 库存管理:   库存管理包括配件库存查询、库存修改、盘点、报损、配件价格维护、库存警戒线设置及库存报警等功能。管理员可及时通过本系统轻松掌握库存资料、制订相应的进货计划。   1.6 配件业务统计报表:   包括:销售出库单查询、入库单查询、订货单明细账、入库汇总账、入库明细账、入库退货明细和汇总账、工具入库账、工具领用出库账、销售明细账和汇总账、销售退货明细账和汇总账、客户订单明细账、配件进销存明细账盘点损益表、库存调拔报表、货品损耗账等等。   2)财务收、付款管理:   2.1 财务收款:   本系统的财务收款信息包括配件销售收款单、入库退货的的应收款项。在汽配模块进行了入账业务操作后,财务收款模块会自动记录相应的收款信息。进行各项单据的财务收款操作时,可对某一笔业务进行入账,也可以一次性对多张业务单据进行入账。收款时会自动填写收款金额、收款人、收款日期、收款方式、业务单号、当次应收、实收、优惠等数据,以便于之后财务数据的稽核和统计。对于记帐客户,应记录承诺付款日期,便于款项催收。   2.2 应付帐款结算:   财务的应付帐款主要是配件采购时对供应商的配件款项结算,对应的是采购入库、工具入库、订货入库、扫描入库等所有入库单和销售退货单的应付款,与收款类似,财务付款时也需录入付款金额,付款日期、发票号、付款方式、付款人、业务单号、当次应付、实付、优惠信息。   2.3 收付款查询、财务收支汇总账、经营状况统计表:   包括对应收、应付款查询、已收已付款、收款人汇总等等查询,便于企业及时了解财务状况、资金分布情况。   2.4 财务对账单:   包括所有收款单、付款单的对账,可以跟供应商、客户进行一定日期范围内的预收款、应收款、预付款、应付款等等进行对账。   3)财务核算管理:   3.1 配件成本核算:   系统可在客户维修和销售出库后,统计维修用料的成本价格、领料价格,以及销售出库时的配件成本价和销售价,整体了解维修以及销售时的成本及毛利。   4)工具管理:   在系统,平时需要使用的工具与配件是分开入库,工具管理主要管理工具的借出、归还、以及报废情况,通过工具台帐了解现有工具的入库、借出、报废以及库存数量,方便对工具的管理。   5) 客户关系管理:   5.1 客户档案:   现代企业的经营管理,越来越重视客户服务、客户反馈、客户信息挖掘分析及客户关怀,留住了客户即是留住了企业的生命线。本系统内的客户关系管理完整、细致而且功能强大,完全等同于一个专业的客户关系管理系统。   在客户管理,客户档案是录入的一个最主要模块,主要信息有客户的姓名、联系方式、车辆信息、以及生日、客户类型、地区、分类、客户来源等等,字段设置简洁实用,先进合理,除了在此模块可以查询客户的详细资料,且更方便以后对客户多种数据的统计和查询,便于客户管理工作的展开。客户档案可以处理供应商、销售客户、合作伙伴等所有资源,通过客户类型来区分。如果客户是一个企业,还可以建立多个联系人,并记录联系记录,并可以提醒日期自动提醒不错失一个工作安排、不错失一个合作机会。这里还有短信功能,及时联系、问候。   5.2 客户分析模块:   客户分析包括:客户资料按不同的信息的分析统计、客户价值分析、热销产品分析、销售分析、销售走势、业绩排名等等。   7) 系统安全管理:   7.1 用户权限管理:   在本系统,每个操作员都必须使用自己的登录名和用户密码来登录系统,用户采用按模块授权和功能按钮控制的方法,每个用户只能看到已授权的模块信息,只能进行已授权的操作(比如删除单据、新增单据、打印等这些权限是分开的),严格控制了操作员的管理权限,在配件管理部分,还可以对操作员按仓库授权,用户只能查看到已有权限的仓库信息,每一个报表我们都进行了权限控制,通过系统控制有效保证客户数据的安全性。   7.2 数据备份和数据导入、导出:   系统数据库基于大型规模关系数据库SQL SERVER 2000和Sybase Anywhere开发,SQL SERVER 2000是性价比公认比较高的数据库管理系统,但为了防止病毒侵入或突然断电等事故造成的系统破坏,应该经常对数据进行备份,这样即使操作系统被破坏后,也一样能够把数据备份时的资料信息恢复过来。本系统每隔两天检查备份,可以自动备份数据库,省去了数据库损坏或丢失之忧。   除了数据备份外,本系统还支持部分或全部数据的导出、清除、导入等操作,可进行任意数据的转移操作。   下载安装说明:   1、打开安装包,连续点击七次下一步,显示正在安装。   安装完成时选择显示启动斯帕数据库。   2、点击下一步,再点击完成。此时电脑的右下角就启动了SQL数据库,左键单击,选择显示服务状态。   3、下一步点击打开桌面的软件图标,显示要进行帐套设置,选择是。下面的全部都是选择(是)(下一步)(确定)就可以了。   这样就可以正式进入软件了。
SQL Server 2005全文检索技术在网站上的应用实录 http://tech.ddvip.com 2008年01月21日 社区交流 Excel服务器-用Excel做管理系统 关键字: DataGuard checkpoint 动态查询 synonyms 卸载SQL 2005 SQL Server群集 内容摘要:本文提供了网站如何设计和实现基于SQL Server 2005的全文检索实例,希望能对正在使用SQL Server 2005构建网站搜索的同仁有所裨益。 一、前言 “人类失去搜索,世界将会怎样?”,同样,很难想象一个拥有极大信息量的行业网站门户没有站内全文搜索将会出现怎样的局面,网站全文检索对于挖掘网站信息和整合网站资源的价值是不言而喻的。我们看到,通用型的搜索引擎已经成为了互联网世界的门户,而对于一个信息量极其丰富的网站而言,全网搜索或许会成为本网站的门户,正是所谓的门户之门。   实现网站全文检索有几种常见方案,比如应用数据库全文检索,开源搜索引擎,使用Google API等, 本文我们将就如何使用SQL Server 2005多快好省地建立网站全文检索展开探讨。 二、全文检索技术说明   1、应用背景   先介绍下Z网站,它是国内投融资行业最大的行业门户,网站拥有海量的融资信息、投资信息、招商信息、创业信息、商机信息、资讯信息、产权交易信息、招标投标信息、标信息、会展信息等投融资行业的信息资源。网站全文检索实现的首要需求就在于能够让用户输入诸如行业关键字后系统能快速返回给符合用户在全范围内查找条件的记录, 从而有效地利用资源,更好地满足用户需求。 2、主要检索技术的区别   有了数据但是没有被使用,那么这些数据不应该被称为信息。它们无非是不断充斥设备和网络的比特而已,但是如何把数据挖掘出来提供给需要的人员,检索技术是其非常有效的途径之一。   现基于微软平台,针对SQL Server 2005提供的全文检索技术进行介绍。与关系数据查询、多维数据库查询和基于XML的XQuery、XPath不同,全文检索技术主要处理对象是基于超大 数据量的文本数据和结构化的二进制数据上类似LIKE的模糊查询。主要区别见下表。    表1:全文检索与关系数据库查询、多维数据查询、XML查询的对比      关系数据库查询 多维数据查询 XML查询 全文检索 检索技术 SQL MDX XQuery、XPath SQL (extension) 主要处理对象 关系二维数据 结构化多维数据 层次型数据 大容量二维和层次型数据的模糊检索 主要应用领域 一般的OLTP类应用 一般的OLAP类分析型应用 面向Internet、Intranet的松散耦合SOA应用 企业/网站内部信息/知识管理类应用 索引 大量使用非聚簇索引,一般保存在数据。 通过层次型、保存间结果的方式,通过不同的轴向快速定位信息剖面。 基于XPath的索引,索引一般保存在数据。 基于关键字的索引,保存在文件系统。每个表仅支持一个索引。   3、全文检索技术简要介绍   全文检索主要应用领域如下:   (1)大数据量、超大数据量的结构化平文本数据和模糊匹配查找(Char、Varchar、Nvarchar)。   (2)大数据量、超大数据量的层次型XML数据展开后的查找---含模糊查找(Xml type)。   (3)标准格式的二进制非结构化Word数据的查找(VarBinary[max]、Image)。   与其他检索技术不同的是,全文检索不仅仅提供词汇层次的查询支持,而且可以根据语言环境、不同语言的特点,甚至于用户自定义的配置提供不同语义级的大容量的数据模糊匹配检索支持。为了提供语义层次的检索,SQL Server 2005的全文检索明确了如下几个概念:   (1)断字符(Word Breaker):因为对于不同的语言,哪些符号可以用于词汇的分割是不同的,因此全文检索支持不同语言环境的不同断字符。   (2)标记(Token):是由断字符标识的词或字符串。由于划分是基于特定语言完成的,因此也可以做到语义层次的支持。   (3)干扰词(Noise Word):主要是那些经常出现,但是对于检索没有多少帮助的词汇。例如:英语的“a”、 “and”、 “is”、 “the”,汉语的“的”、 “不”、 “以”、 “了”等。SQL Server 2005提供配置文件,允许用户自定义自己语言、甚至与本行业、本企业的检索干扰词。   (4)词干分析器(Stemmer):通过断字符分割后,根据具体的语言和该语言的语法规程生成的特定词汇的变形。 这个即是搜索引擎常提到的分词技术。   (5)同义词:即便是同一个语言,在检索的情况下也存在同义词如何处理的问题。如果一个检索系统不能够识别近义词,而只能识别完全匹配的词汇,那对于我们文这种表义的语言而言会带来很大不便。同样的,一个行业内部也有很多同义词或者是缩略语。例如如下的词语。   广播行业:“ABC”与“英国ABC广播公司”基本上类似,但是也可能和“澳大利亚广播公司”混淆。   政府行文:“ABC”与南美的“阿根廷、巴西、智利三国”是同义词。   不仅如此,由于日常使用的习惯,我们在口语表达和书面语表达上也有区别,这个也需要预先定义。例如,很多口头常用的技术产品“Win2K”、 “WinXP”等,一般都很正式的称为“Windows 2000”和 “Windows XP”,因此SQL Server 2005上也提供类似词汇替换的支持,而且这些支持也是与具体语言相关的。   4、SQL Server 2005全文检索的技术架构   让我们首先得问自己,什么是全文检索?它是指Microsoft SQL Server 2005 具备针对 Microsoft SQL Server 基于纯字符的数据进行全文查询的功能。全文查询可以包括词和短语,或者词或短语的多种形式。   当我们明确了全文检索概念之后,我们来看看它的内部结构。   Microsoft SQL Server 2005 的全文搜索由 Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务提供支持。MSFTESQL 服务有两个角色,即索引支持和查询支持。   全文搜索的组件   全文搜索的体系结构由下列组件构成:   ◆Microsoft Full-Text Engine for SQL Server (MSFTESQL) ◆Microsoft Full-Text Engine Filter Daemon (MSFTEFD),它包含下列组件: (1)筛选器 (2)协议处理程序 (3)断字符   SQL Server的全文搜索的体系结构如下所示。    图1   让我们逐一介绍两类重要的引擎及其在整个体系结构的重要作用。   Full-Text Engine for SQL Server (MSFTESQL)   MSFTESQL 服务负责进行下列操作:   ◆填充全文索引。 ◆管理全文索引和全文目录。 ◆帮助对 SQL Server 数据的表进行全文搜索。   让我们来看看SQL Server 2005全文索引的过程   全文填充(也称为爬网或爬虫)开始后,数据库引擎会将大批数据存入内存并通知 Microsoft SQL Server 全文引擎 (MSFTESQL) 服务开始进行索引。MSFTESQL 服务将对表的某一列或几列的字符和格式化二进制数据编制索引。全文引擎将使用协议处理程序组件从内存取出数据并进行进一步处理,从而生成全文索引。   对存储在 varbinary(max) 或 image 列数据编制索引时,筛选器(实现了 IFilter 接口)将基于为该数据指定的文件格式(例如,Microsoft Word)来提取文本。在某些情况下,筛选器组件会要求将 varbinary(max) 或 image 数据写到服务帐户 Temp 目录,而不是将其存入内存。   在处理过程,通过断字符将收集到的文本数据分隔成各个单独的标记或关键字。用于标记化的语言将在列级指定,或者也可以通过筛选器组件在 varbinary(max)、image 或 xml 数据内标识。   还可能执行其他处理以删除干扰词并在将标记存储到全文索引或索引片断之前将这些标记规范化。   Microsoft Full-Text Engine for SQL Server 的功能   SQL Server 2005 为全文引擎提供了并行安装方式。这意味着对于每个 SQL Server 实例,都存在一个专用的 MSFTESQL 实例,其包括专用的组件(例如断字符和筛选器)、资源(例如内存)和配置(例如服务级设置,实例级的 resource_usage 是一个更具体的例子)。单个 MSFTESQL 服务实例可管理相关联的 SQL Server 实例的全文索引。利用 MSFESQL 服务,SQL Server 可超出 SQL 标准对字符串列执行更为复杂的搜索。   MSFTESQL 服务担当了以下角色:   索引支持   MSFTESQL 实现了为数据库定义的全文目录和索引。   查询支持   MSFTESQL 可处理全文搜索查询并确定索引符合全文选择条件的项。对于符合选择条件的每一项,MSFTESQL 将向 SQL Server 服务返回相应行的标识外加一个排名值,而后者将使用这些信息来构造查询结果集。所支持的查询类型包括:   ◆搜索词或短语。 ◆搜索位置邻近的词。 ◆搜索词的变形。   可管理性支持   全文目录和索引不会存储在 SQL Server 数据。MSFTESQL 服务负责管理全文目录。   Microsoft Full-Text Engine Filter Daemon   MSFTEFD 由负责从访问和筛选数据以及进行断字和词干分析的组件组成。   ◆筛选器   筛选器的任务是从文档提取文本化信息流,并舍弃所有非文本化信息和格式化信息。筛选器将生成文本字符串和属性/值对,并依次将它们传递给索引引擎。   筛选器可从特定的文档格式(如 Microsoft Word 文档或文本文件)提取文本化信息。例如,Microsoft 提供了 Microsoft Office 筛选器,此筛选器可以从 Word、Microsoft Excel 和 Microsoft PowerPoint 文件提取文本和属性。其他筛选器用于处理 HTML 或电子邮件。还可以使用第三方筛选器。   ◆SQL 协议处理程序   在 SQL Server 2005 ,SQL 协议处理程序的工作是从指定数据的表内访问数据。   断字符   断字符是用于在查询或抓取的文档确定字符流的字符边界位置。有关详细信息。   全文搜索的索引组件负责全文索引的初始填充,以及当全文索引数据被修改时该索引的后续更新。为了提升全文索引过程的效率,Microsoft SQL Server 2005 改进了全文收集机制的体系结构,从而大大增强了性能。 Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务是一个全文索引和搜索引擎。MSFTESQL 引擎基于 Microsoft Search (MSSearch) 技术,它与 Microsoft SQL Server 2005 Database Engine 进行了最为紧密的集成。   全文引擎作为 MSFTESQL 服务在操作系统上运行。SQL Server 与 MSFTESQL 必须拥有相同的服务帐户。默认情况下将安装 MSFTESQL 服务,但是只有在使用全文搜索时才会运行此项服务。   三、网站全文检索设计   1、架构设计 采用OLTP交易数据库和OLAP数据仓库(用于搜索和分析)分离的模式,OLTP作为OLAP的数据源通过SQL Server Integration Services (SSIS)定期导入到OLAP数据仓库环境,OLAP采用星型结构以便于更好地满足搜索和将来的数据挖掘。 OLAP数据仓库的建立目标为了检索和数据挖掘,故其事实表的建立可以反范式原则设计。    图2   2、原型设计(由于篇幅限制,这里仅给出搜索主页和主要资源查询页面)    图3   3、数据库设计    图4   4、数据字典   MainInfoTab(信息主表)      CapitalInfoTab(资本信息明细表)      ProjectInfoTab(项目信息明细表)      MerchantInfoTab(政府招商信息明细表)      四、数据库全文检索实现   至此,我们已经完成了全文检索的设计工作,现在可以来实现它的功能啦!   首先, 让我们建立检索表的全文检索,全文检索要求唯一索引,故需要在相关表建立唯一聚集索引。   第二步,使用SQL DDL或者SQL Server Management Studio建立表的全文检索。   1)使数据库支持全文检索。    图5   或者通过键入命令 EXEC SP_FULLTEXT_DATABASE 'Enable' 命令达到同样效果。   2)定义表的全文检索目录和索引字段。   在表的鼠标右键通过点击“全文检索定义全文检索”将弹出如下执行向导,本向导执行完毕则该表的全文检索业已完毕。   a)选择要索引的字段    图6   或者键入如下命令:    CREATE FULLTEXT INDEX ON TableName KEY INDEX PK_IndexName ON DB WITH CHANGE_TRACKING AUTO ALTER FULLTEXT INDEX ON TableName ADD ColumnName   b)选择或创建新的索引目录。    图7   c)定义填充计划。    图8   至此,表的全文索引已经建立完毕,表示只要键入SQL 指令就可以完成全文检索功能。   第三步,开发存储过程并把结果集分页,以供前台页面调用返回查询的结果。   1) 建立找资本全文检索储存过程USP_CaptialInfo_FullIndex。 /* 找资本全文索引开发过程  */ CREATE PROCEDURE USP_CaptialInfo_FullIndex ( @TableViewQueryNameVarchar( 1024 ), --传入的查询字符窜 @SearchKeyword nvarchar(100), --传入的查询关键字 @SelectStr Varchar( 500 ), --选择列字符串 @Criteria Varchar( 8000 ), --查询条件 @Sort Varchar( 255 ), --排序字符串 @FristTopNum int,  --显示的第一页置顶的数目 @Page bigint OUTPUT , --显示的当前页号 @CurrentPageRowbigint,  --页大小(显示多少行)  @TotalCount bigint output, --通过该查询条件,返回的查询记录的总页数 @Totaltimes bigint output --所有搜索时间,以秒为单位 ) as  DECLARE @starttime datetime, @endtime datetime SELECT @starttime = getdate() IF ISNULL(@SearchKeyword,'') !='' OR RTRIM(@SearchKeyword)!='' BEGIN SET @TableViewQueryName = ' SELECT '+ ' ROW_NUMBER() OVER (ORDER BY RANK DESC) AS SerialNumber ,'+ ' F.[rank], '+ ' p.*' + ' FROM'+ ' FREETEXTTABLE( CapitalInfoFactTab , (ProvinceName, CityName,  CountyName, Keyword,Title ,IndustryBName , shortcontent, ComAbout , ComBreif) , '+ ''''+@SearchKeyword+ ''''+') AS f '+ ' INNER JOIN  CapitalInfoFactTab  AS p '+ ' ON f.[key] = p.infoID ' EXEC [USP_GetFrontDataList_ByFullIndex] @TableViewQueryName, @SearchKeyword, @SelectStr, @Criteria, @Sort, @FristTopNum, @Page OUTPUT , @CurrentPageRow , @TotalCount OUTPUT END ELSE BEGIN EXEC dbo.GetFrontDataList 'dbo.ProjectInfoFactTab', 'InfoID', @SelectStr,@Criteria,@Sort,0, @Page output, @CurrentPageRow, @TotalCount output END SELECT @endtime = getdate() SELECT @Totaltimes = DATEdiff(Ms, @starttime ,@endtime) RETURN   2)建立通用分页存过程[USP_GetFrontDataList_ByFullIndex]。由于性能考虑,返回给前台页面需要网站数据库端即完成分页。    CREATE PROCEDURE [dbo].[USP_GetFrontDataList_ByFullIndex] ( @TableViewQueryName Varchar( 1024 ),  --Table或View或者Query的名字或字符串 @Key  Varchar( 50 ), --关键字 @SelectStr  Varchar( 500 ),  --选择列字符串 @Criteria  Varchar( 8000 ),--查询条件 @Sort  Varchar( 255 ), --排序字符串 @FristTopNum  INT,   --显示的第一页置顶的数目 @Page  BIGINT OUTPUT, --显示的当前页号 @CurrentPageRow BIGINT, --页大小(显示多少行) @TotalCount  BIGINT OUTPUT  --通过该查询条件,返回的查询记录的总页数 ) ASSET NOCOUNT ONif charindex(';',@Criteria)>0 or charindex('--',@Criteria)>0 or charindex('/*',@Criteria)>0 or charindex('*/',@Criteria)>0 or charindex('syscolumns',@Criteria)>0 orcharindex('sysfiles',@Criteria)>0 or charindex('char(124)',@Criteria)>0 or charindex('1=1',@Criteria)>0 RETURN DECLARE @TotalStr nVarchar(4000) DECLARE @Str  nVarchar(4000) DECLARE @TopRowNum bigint IF @SelectStr IS NULL AND RTRIM(LTRIM(@Criteria)) = '' SET @SelectStr = '*' IF @FristTopNum IS NULL AND @FristTopNum < 0 BEGIN SET @FristTopNum = 0 END ELSE IF @FristTopNum > @CurrentPageRow BEGIN SET @FristTopNum = @CurrentPageRow ENDIF @CurrentPageRow > 0 BEGIN IF @Criteria IS NOT NULL AND RTRIM(LTRIM(@Criteria)) <> '' BEGIN SET @TotalStr = 'SELECT @TotalCount=COUNT(*) FROM ' +'('+ @TableViewQueryName  +')'+ ' T ' + ' WHERE ' + @Criteria END ELSE BEGIN SET @TotalStr = 'SELECT @TotalCount=COUNT(*) FROM ' +'('+@TableViewQueryName +')'+ ' T ' END PRINT @TotalStr EXEC sp_ExecuteSql @TotalStr, N'@TotalCount bigint output',@TotalCount output SET @TotalCount = @TotalCount + isnull(@FristTopNum ,0) DECLARE @TotalPage bigint SET @TotalPage = @TotalCount/@CurrentPageRow IF @TotalCount%@CurrentPageRow > 0 BEGIN SET @TotalPage = @TotalPage + 1 END IF @Page <= 0 BEGIN SET @Page = 1 END IF @TotalPage > 0 AND @Page > @TotalPage BEGIN SET @Page = @TotalPage END--组织查询语句 SET @Str = 'SELECT  ' +  @SelectStr + ' FROM (' + @TableViewQueryName + ') T WHERE T.SerialNumber >' + cast ((@Page-1) as varchar(10)) + '*' +cast( @CurrentPageRow as varchar(10))+ ' AND T.SerialNumber <= '+ cast (@Page as varchar(10)) + '*' +cast( @CurrentPageRow as varchar(10))IF @Sort IS NOT NULL ANDRTRIM(LTRIM(@Sort)) <> '' BEGIN IF @Criteria IS NOT NULL AND RTRIM(LTRIM(@Criteria)) <> '' BEGIN SET @Str = @Str +  ' AND (' + @Criteria + ') ORDER BY '+@Sort END ELSE BEGIN SET @Str = @Str +  ' AND (' + @Criteria + ') ORDER BY '+@Sort END END ELSE BEGIN IF @Criteria IS NOT NULL AND  RTRIM(LTRIM(@Criteria)) <> '' BEGIN SET @str = @str + ' AND (' + @Criteria + ') '  END END --对无记录时当前页数的处理 IF @TotalCount=0 BEGIN SET @Page = 0 END END EXEC sp_ExecuteSql @Str 由于本行业网站可以提高如下几类信息资源,现列表分示如下: ID 检索内容 数据表 检索命令示例 1 投资 CapitalInfoTab DECLARE @RC int DECLARE @TableViewQueryName varchar(1024) DECLARE @SearchKeyword nvarchar(100) DECLARE @SelectStr varchar(500) DECLARE @Criteria varchar(8000) DECLARE @Sort varchar(255) DECLARE @FristTopNum int DECLARE @Page bigint DECLARE @CurrentPageRow bigint DECLARE @TotalCount bigint DECLARE @Totaltimes bigint   -- TODO: 在此处设置参数值。 SET @SearchKeyword = '地产项目' SET @SelectStr = '*' SET @Sort = '' SET @Page= 1 SET @CurrentPageRow = 20 EXECUTE @RC = [InvestDM].[dbo].USP_CapitalInfo_FullIndex   @TableViewQueryName  ,@SearchKeyword  ,@SelectStr  ,@Criteria  ,@Sort  ,@FristTopNum  ,@Page   ,@CurrentPageRow  ,@TotalCount OUTPUT  ,@Totaltimes OUTPUT SELECT @Page,@TotalCount,@Totaltimes 2 融资 ProjectInfoTab DECLARE @SearchKeyword nvarchar(100) --传入的查询关键字 SET   @SearchKeyword = '深圳'   SELECT p.title, p.infoid, f.[rank] , keyword,title,provinceName,cityName,CountyName FROM FREETEXTTABLE([ProjectInfoFactTab], (provinceName,cityName,CountyName,keyword,title), @SearchKeyword) AS f INNER JOIN [ProjectInfoFactTab] AS p ON f.[key] = p.infoID ORDER BY RANK DESC 3 招商 MerchantInfoTab   DECLARE @SearchKeyword nvarchar(100) --传入的查询关键字   SET   @SearchKeyword = '深圳'   SELECT  ROW_NUMBER() OVER (ORDER BY RANK DESC) AS SerialNumber , F.[rank], p.* FROM FREETEXTTABLE( MerchantInfoFactTab , (ProvinceName, CityName,  CountyName, Keyword,   Title ,IndustryBName , shortcontent, ZoneAbout , ZoneAboutBrief, MerchantTypeName ,MerchantAttributeName,   CooperationDemandName ) ,   @SearchKeyword) AS f INNER JOIN  MerchantInfoFactTab  AS p  ON f.[key] = p.infoID 4 资讯 NewsTab    DECLARE @SearchKeyword nvarchar(100) --传入的查询关键字    SET   @SearchKeyword = '深圳'    SELECT   ROW_NUMBER() OVER (ORDER BY RANK DESC) AS SerialNumber , F.[rank] ,  p.*  FROM   FREETEXTTABLE( NewsInfoFactTab , (AreaName,  Keyword,   Title , DisplayTitle, subtitle ,Summary , Content ,NewsIndustryName ,  NewsTypeName ) , @SearchKeyword ) AS f INNER JOIN  NewsInfoFactTab  AS p   ON f.[key] = p.infoID 

7,388

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据仓库
社区管理员
  • 数据仓库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧