摘要:上周工作中,主要针对cust_statement报表进行优化。优化对象:存储过程。 分析后发现,影响性能的瓶颈在于对于一个游标的使用:DECLARE CUR_COMP_LIST CURSOR FOR SELECT BUSINESS_ID FROM #RESULT_COMP_LIST OPEN CUR_COMP_LIST FETCH NEXT FROM CUR_COMP_LIST INTO @FIELDVALUE WHILE @@FETCH_STATUS = 0 BEGIN SELECT @FILTERFIELD = N'' SELECT @FILTERFIELD = @FILT
阅读全文
摘要:聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。例如,如果应用程序执行 的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有...
阅读全文
摘要:create database myIndexDemogouse myIndexDemogocreate table ABC(A int not null,B char(10),C varchar(10))goinsert into ABCselect 1,'B','C'unionselect 5,'B','C'unionselect 7,'B','C'unionselect 9,'B','C'goselect * from ABC--在ABC表上创建聚集索引crea
阅读全文
摘要:错误引用provider: 命名管道提供程序, error: 40 - 无法打开到 sql server 的连接解决方法另需启动的服务如下相关知识(摘自 SQL Server 配置管理器帮助 )TCP/IPTCP/IP 是 Internet 上广泛使用的通用协议。它与互连网络中硬件结构和操作系统各异的计算机进行通信。TCP/IP 包括路由网络流量的标准,并能够提供高级安全功能。它是目前在商业中最常用的协议。将计算机配置为使用 TCP/IP 可能会很复杂,但大多数联网的计算机已经配置正确。Named PipesNamed Pipes 是为局域网而开发的协议。内存的一部分被某个进程用来向另一个进程
阅读全文
摘要:1、判断数据表是否存在 方法一:use yourdb;goif object_id(N'tablename',N'U') is not nullprint '存在'else print '不存在'例如:use fireweb;goif object_id(N'TEMP_TBL',N'U') is not nullprint '存在'else print '不存在'方法二:USE [实例名] GO IF EXISTS (SELECT * FROM dbo.SysObje
阅读全文
摘要:declare @idx int, @str nvarchar(1000)set @str = '我的字符串'set @idx = 1while @idx <= len(@str)begin PRINT substring(@str, @idx, 1)-- 取得@idx所在的这个字符 set @idx = @idx + 1end-----------------------------------------------------------------------结果:我的字符串
阅读全文
摘要:--在存储过程中where条件in()的替代做法DECLARE @test NVARCHAR(50)SET @test='48,49,50,51';SELECT * FROM dbo.TbExamRecord WHERE CHARINDEX(','+CAST(reid AS NVARCHAR(10))+',',','+@test+',')>0--等同于SELECT * FROM dbo.TbExamRecord WHERE REID IN(48,49,50,51)
阅读全文
摘要:declare@sqlcmdvarchar(4000)set@sqlcmd=''select@sqlcmd=@sqlcmd+'deletefrom'+name+char(10)fromsysobjectswheretype='U'--exec(@sqlcmd)print@sqlcmd--oruse'truncatetable'command
阅读全文
摘要:USEAdventureWorks;//AdventureWorks为数据库名称GOSelectIDENT_CURRENT('Person.Address')//'Person.Address'为表名,注意表名要有单引号GO
阅读全文
摘要:getCon(); //连接数据库的方法intid=35;SqlParameter[]par=newSqlParameter[2];par[0]=newSqlParameter("@id",SqlDbType.Int);par[0].Value=id;par[1]=newSqlParameter("@count",SqlDbType.Int);par[1].Direction=ParameterDirection.Output; //设置为输出参数SqlHelper.ExecuteNonQuery(con,CommandType.StoredProced
阅读全文
摘要:测试代码 :EXEC [GetRecordByPage] 'articleSpeical','id','id,specialName',1,3,0,0,''代码如下:AlterPROCEDURE[dbo].[GetRecordByPage]@tblNamevarchar(255),--表名@fldNamevarchar(255),--主键字段名@selectContentVARCHAR(255),--查询的列名,为空则查询所有列@PageSizeint,--页尺寸@PageIndexint,--页码@IsReCountbit,--
阅读全文
摘要:字符串函数用于处理列中的数据值,通常属于字符型的数据类型。 1、ASCLL(character),将具体字符转换为相应的整数(ASCII)代码,结果为正数。 例:select ASCII('A'),结果为65 2、CHAR(int),将ASCII代码转换为相应的字符,结果为CHAR(1). 例:select CHAR(65),结果为A 3、CHARINDEX(str1,str2),返回部分字符串str1在字符串str2中首次出现的起始位置。如果str1没有在str2中出现,那么返回值为0。 例:select CHARINDEX('world','hell
阅读全文
摘要:在给文章加自定义标签时,需要在存储过程中对输入的字符串按照“,”字符分割成一个字符数组。但是Sql中没有实现字符串分组的Split方 法。因此就需要编写一个自定义的Split函数。我首先是使用表值函数的方法实现的字符串分组,但是在使用中感觉不是很方便。后来又在网上找到了一种使用 两个标量函数,其中一个函数首先返回分割后字符数组的长度,另一个函数依次返回每个分割出的字符串。然后使用循环依次获取分割的字符。表值函数实现Split方法Create FUNCTION [dbo].[SplitToTable]( @SplitString nvarchar(max), @Separat...
阅读全文
摘要:$(document).ready(function(){ $(".btn1").click(function(){ $("p").slideToggle(); });});定义和用法当 DOM(文档对象模型) 已经加载,并且页面(包括图像)已经完全呈现时,会发生 ready 事件。由于该事件在文档就绪后发生,因此把所有其他的 jQuery 事件和函数置于该事件中是非常好的做法。正如上面的例子中那样。ready() 函数规定当 ready 事件发生时执行的代码。ready() 函数仅能用于当前文档,因此无需选择器。允许使用以下三种语法:语法 1$(doc
阅读全文
摘要:当您数据库的企业管理器显示无项目(如图1),请您按照以下方法添加:解决办法:(1)在SQL Server 组上点击右键。<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />(2)选择“新建SQL Server 注册”。(3)在“可用管理器”上选择与您“服务管理器”相对应的服务器名。如果“可用管理器”没有
阅读全文
摘要:因为一般都用T-SQL来执行数据库操作,偶尔现在转到用存储过程,竟然写不来调用过程的返回值了,查了很多资料,都不详细,或者没到点上,也许是我比较笨,呵呵。C# 源代码1///<summary>2///校验用户3///</summary>4///<paramname="user">用户信息</param>5///<returns></returns>6publicstaticintVerifyUser(clsUseruser)7{8intiRet;9stringsql=String.Format(&quo
阅读全文
摘要:通常我们在对某表进行查询的时候,会发现有很多重复的数据,比如有张登录统计表,我们现在需要查出登录一次,登录二次,登录三次..的用户。如果根据用户的ID来统计的话,那样肯定是不行的,我们要统计的是一次的用户数量,而不是某个用户的登录次数.碰到这个问题的时候我们就可以用到group by了。入下:select UserID,COUNT(UserID) total from Tb groupby UserID 这样就可以实现根据UserID来分组了,查询结果有两列,第一列是Userid,第二列是该UserID出现的次数,这个次数也就是我们需要的登录次数了。这里要啰嗦下的是,查询的字段必须是在聚合函.
阅读全文