-
通过SQLServer的位运算功能巧妙解决多选查询方法
无论使用int还是varchar,对于Status的多选查询都是不易应对的。举例,常规思维下对CustomerStatus的Enum设置如下:复制代码代码如下:[Serializable]publicenumCustomerStatus{New=0,Active=1,Overdue=2,Suspended=3,Closing=4,Closed=5}在数据库中以int形式存储了Status值...
数据库操作教程 2022-09-23 17:25:14 -
sqlserver数据库最大Id冲突问题解决方法之一
复制代码代码如下:CREATETABLE[dbo].[TbGuidTable]([TableName][varchar](50)NOTNULL,[KeyName][varchar](20)NOTNULL,[KeyValue][varchar](100)NOTNULL)ON[PRIMARY]GOifexists(select*fromdbo...
数据库操作教程 2022-09-23 17:24:48 -
MSSQL将截断字符串或二进制数据问题的解决方法
地图数据存放在sqlserver2008中,使用mapxtreme7开发时,使用Feature.Update()方法时出错的提示包含“MSSQL将截断字符串或二进制数据”主要原因就是给某个字段赋值时,内容大于字段的长度或类型不符造成的解决方法:一个是修改数据库字段大小;再一就是是加强数据强壮性,严格的输入判断。防止添加的信息类型或者长度与数据库表中字段所对应的类型不符合...
数据库操作教程 2022-09-23 17:24:18 -
安装sqlserver2008后再安装sql2005找不到本地服务器的解决方法
最近在项目中安装sqlserver2005,发现找不到本地服务器,因为此前我已经安装了sqlserver2008,打开2005数据库引擎后找不到本地服务器,在网上也找不到正确的解决办法,以为是组件没有安装,有重新安装一次问题依然存在,当时很是郁闷,后来想想是不是组件没有安装,重装了一次还是这样,后来想想是不是2005的服务器实例与2008重合了,在重装的时候就在安装此步骤的实例没有选择默认实例如下图,此处要注意:不能选择默认实例,单击“已安装的实例”会发现有2008的服务器名称,如果选择默认的就不会安装2005的服务器所有在命名实例中填入服务器名称,如SQL2005,其他的安装按照正常步骤来,后来安装完成后在本地服务器中找到了2005的本地服务器。在此sqlserver安装过程中相信也有遇到同类问题的友友,在此处记录下来,以免遇到同样问题的博友重蹈覆辙!...
数据库操作教程 2022-09-23 17:24:07 -
在SQLServer中实现最短路径搜索的解决方法
开始这是去年的问题了,今天在整理邮件的时候才发现这个问题,感觉顶有意思的,特记录下来。在表RelationGraph中,有三个字段(ID,Node,RelatedNode),其中Node和RelatedNode两个字段描述两个节点的连接关系;现在要求,找出从节点"p"至节点"j",最短路径(即经过的节点最少)...
数据库操作教程 2022-09-23 17:24:06 -
关于sqlserver批量插入和更新的两种解决方案
复制代码代码如下:.游标方式1DECLARE@DataNVARCHAR(max) SET@Data='1,tanw;2,keenboy' --Id,Name DECLARE@dataItemNVARCHAR(100) DECLAREdata_cursorCURSORFOR(SELECT*FROMsplit(@Data,';')) OPENdata_cursor FETCHNEXTFROMdata_cursorINTO@dataItem WHILE@@FETCH_STATUS=0 BEGIN DECLARE@IdINT DECLARE@NameNVARCHAR(50) DECLAREdataItem_cursorCURSORFOR(SELECT*FROMsplit(@dataItem,',')) OPENdataItem_cursor FETCHNEXTFROMdataItem...
数据库操作教程 2022-09-23 17:18:31 -
sqlserver数据库出现置疑的解决思路
先备份数据库,再用下面的办法:复制代码代码如下:USEMASTERGOSP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDEGOALTERDATABASEDatabase_NameSETEMERGENCYGOsp_dboption'Database_Name','singleuser','true'GODBCCCHECKDB('Database_Name','REPAIR_ALLOW_DATA_LOSS')GOALTERDATABASEDatabase_NameSETONLINEGOsp_configure'allowupdates',0reconfigurewithoverrideGOsp_dboption'Database_Name','singleuser','false'GO首先新建一个同名的数据库,然后再停掉sqlserver服务,用原数据库的数据文件覆盖掉这个新建的数据库文件,重启sqlserver服务。打开企业管理器,该数据库显示“置疑”,在查询分析器中执行上面的语句...
数据库操作教程 2022-09-23 17:17:15 -
SQLServer2000报1053错误(服务没有及时响应或控制请求)的解决方法
今天启动SQLServer2000时报1053错误错误如下所示:发生错误1053-(服务没有及时响应或控制请求。),此时正在MSSQLServer服务上执行该服务操作...
数据库操作教程 2022-09-23 17:17:15 -
完美解决SQLserver2005中插入汉字变成问号的问题
关于SQLserver2005中插入汉字变成问号的解决办法1.右击你所建的数据库,点击“属性”,选择“选项”并点击。将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后“确定“...
数据库操作教程 2022-09-23 17:16:30 -
基于SqlServer通用分页存储过程的解决方法
sqlserver2000分页方式很多,效率吗 当到达10万级以上就有些吃力了,这里暂时不例出来了sqlserver2005以上就有了row_number也是一大进步,详情如下参考复制代码代码如下:SqlServer2005通用分页存储过程CREATEPROCEDURE[dbo].[Common_GetPagedList](@TableNamenvarchar(100),--表名@ColumnNamesnvarchar(1000)='*',--字段名集合(全部字段为*,其它逗号分隔)@OrderClausenvarchar(1000),--排序从句(不包含orderby)@WhereClausenvarchar(1000)=N'1=1', --条件从句(不包含where)@PageSizeint=0,--每页记录数(0为所有)@PageIndexint=1, --页索引(从1开始)@TotalRecordintoutput --返回总记录数)ASBEG...
数据库操作教程 2022-09-23 17:16:21 -
sqlserver中批量插入与更新两种解决方案分享(存储过程)
1.游标方式复制代码代码如下:DECLARE@DataNVARCHAR(max)SET@Data='1,tanw,2,keenboy'--Id,NameDECLARE@dataItemNVARCHAR(100)DECLAREdata_cursorCURSORFOR(SELECT*FROMsplit(@Data,';'))OPENdata_cursorFETCHNEXTFROMdata_cursorINTO@dataItemWHILE@@FETCH_STATUS=0BEGINDECLARE@IdINTDECLARE@NameNVARCHAR(50)DECLAREdataItem_cursorCURSORFOR(SELECT*FROMsplit(@dataItem,','))OPENdataItem_cursorFETCHNEXTFROMdataItem_cursorINTO@IdFETCHNEXTFROMdataItem_cursorINTO@NameCLOSEdataItem_cursorDEALLOCATEdataItem_cursor/*在这里做逻辑处理,插入或更新操作...
数据库操作教程 2022-09-23 17:16:11 -
真正高效的SQLSERVER分页查询(多种方案)
Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID、YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2第一种方案、最简单、普通的方法:复制代码代码如下:SELECTTOP30*FROMARTICLEWHEREIDNOTIN(SELECTTOP45000IDFROMARTICLEORDERBYYEARDESC,IDDESC)ORDERBYYEARDESC,IDDESC平均查询100次所需时间:45s第二种方案:复制代码代码如下:SELECT*FROM( SELECTTOP30*FROM(SELECTTOP45030*FROMARTICLEORDERBYYEARDESC,IDDESC)fORDERBYf.YEARASC,f.IDDESC)sORDERBYs.YEARDESC,s.IDDESC平均查询100次所需时间:138S第三种方案:复制代码代码如下:SE...
数据库操作教程 2022-09-23 17:13:43