-
sqlserver中在指定数据库的所有表的所有列中搜索给定的值
比如:我们导入了某个客户的资料,我们知道此客户的姓名是ZhangShan,我们想知道,在我们的业务数据库(eg:NorthWind)中,有哪些数据表的哪些字段设置了此姓名值ZhangShan,通过下面的SQL,我们就可以实现此目的,此处的SQL搜索自网上,在此处做了局部修改。一、搜索数据是String类型适用于搜索Text,NText,Varchar,Nvarchar,Char,NChar等类型1、创建存储过程:My_Search_StringInGivenTable复制代码代码如下:USE[NORTHWIND]GO/******Object:StoredProcedure[dbo].[My_Search_StringInGivenTable]ScriptDate:09/25/201115:37:14******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDURE[dbo].[My_Search_StringInGivenTable](@SearchStringNVARCHAR(MAX),@Table_Schemasysna...
数据库操作教程 2022-09-23 20:30:40 -
分页存储过程(三)在sqlserver中打造更加准确的分页结果
有人提出游标不好,会锁定行,幸亏我锁定的是临时表,不是数据表,不影响数据表的写操作。下面是14楼的回复,让我茅塞顿开,于是有了今天的改进版,取消了游标的使用,临时表还是存在的,谢谢...
数据库操作教程 2022-09-23 20:26:48 -
mssql30万条数据搜索文本字段的各种方式对比
数据库:30万条,有ID列但无主键,在要搜索的“分类”字段上建有非聚集索引过程T-SQL:复制代码代码如下:/*用户自定义函数:执行时间在1150-1200毫秒左右CREATEFUNCTION[dbo].[gethl](@typesnvarchar(4))RETURNStableASreturnselect书名from图书三十万条Where分类Like'%'+@types+'%'存储过程:CREATEPROCEDURE[dbo].[getfl](@typennvarchar(4))ASselect书名from图书三十万条Where分类Like'%'+@typen+'%'*/复制代码代码如下:declare@adatetime,@bnvarchar(4)set@a=getDate()select书名from图书三十万条Where分类Like'%医学%'--“分类”列有非聚集索引,比聚集索引1150快一点,差不多执行时间在1100左右--select书名fromgethl('医学')--使用用户自定义函数,效率和建立聚集索引一样,还稍慢一点在1150-1200--Executegetfl'...
数据库操作教程 2022-09-23 20:24:39 -
将所有符合条件的结果拼接成一列并用逗号隔开的一个sql语句
复制代码代码如下:createtabletb(idint,valuevarchar(10))insertintotbvalues(1,'aa')insertintotbvalues(1,'bb')insertintotbvalues(2,'aaa')insertintotbvalues(2,'bbb')insertintotbvalues(2,'ccc')gocreatefunction[dbo].[f_str](@idint)returnsnvarchar(1000)asbegindeclare@strnvarchar(1000)set@str=''select@str=@str+','+cast(valueasnvarchar(900))fromtbwhereid=@idset@str=right(@str,len(@str)-1)return@strendgo--调用函数selectid,value=dbo.f_str(id)fromtbgroupbyid运行结果:本来在上面的函数中所有的nvarchar都是varchar类型的,并且上面函数的红色处在调用cast方法时,并未指定...
数据库操作教程 2022-09-23 20:21:15 -
大数据量分页存储过程效率测试附测试代码与结果
测试环境硬件:CPU酷睿双核T5750内存:2G软件:Windowsserver2003+sqlserver2005OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable复制代码代码如下:createdatabasedata_Test--创建数据库data_Test GOusedata_TestGOcreatetabletb_TestTable--创建表(idintidentity(1,1)primarykey,userNamenvarchar(20)notnull,userPWDnvarchar(20)notnull,userEmailnvarchar(40)null)GO然后我们在数据表中插入2000000条数据:复制代码代码如下:--插入数据setidentity_inserttb_TestTableondeclare@countintset@count=1while@count<=2000000begininsertintotb_TestTable(id,userName,userPWD,userEmail)va...
数据库操作教程 2022-09-23 20:17:35 -
存储过程的输出参数,返回值与结果集
每个存储过程都有默认的返回值,默认值为0。下面我们分别看看在managementstudio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集...
数据库操作教程 2022-09-23 20:16:06 -
分页存储过程(二)在sqlserver中返回更加准确的分页结果
在我的使用SQLServer2005的新函数构造分页存储过程中,我提到了使用ROW_NUMBER()函数来代替top实现分页存储过程。但是时间长了,又发现了新问题,就是主子表的分页查询...
数据库操作教程 2022-09-23 20:15:01 -
SQLServer存储过程同时返回分页结果集和总数
前言 好长时间没摸数据库了,周末在家写了个报表的存储过程,一时间对使用存储过程实现分页的同时并计算出记录总数不知道怎么更好的去实现。按照我们正常的业务逻辑,存储过程数据首先是分页,其次接受若干查询条件,返回分页结果集的同时还需要返回记录总数给客户端...
数据库操作教程 2022-09-23 18:15:37 -
SqlServer将查询结果转换为XML和JSON
很久之前用到的,现在整理在这,里面一些代码来源于网上,不过有些bug已被我修改了。1.查询结果转XMLDECLARE@ParameterSQLNVARCHAR(MAX)='SELECT*FROMtable';DECLARE@SQLNVARCHAR(MAX)DECLARE@XMLStringVARCHAR(MAX)DECLARE@XMLXMLDECLARE@ParamlistNVARCHAR(1000)SET@Paramlist=N'@XMLXMLOUTPUT'SET@SQL='WITHPrepareTable(XMLString)'SET@SQL=@SQL+'AS('SET@SQL=@SQL+@ParameterSQL+'FORXMLRAW,TYPE,ELEMENTS'SET@SQL=@SQL+')'SET@SQL=@SQL+'SELECT@XML=[XMLString]FROM[PrepareTable]'EXECsp_executesql@SQL,@Paramlist,@XML=@XMLOUTPUTSET@XMLString=CAST(@XMLASVARCHAR(MAX))SELE...
数据库操作教程 2022-09-23 18:08:56 -
SQLServer地址搜索性能优化
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享。1.需求 1.1基本需求:根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内...
数据库操作教程 2022-09-23 18:07:01 -
sql语句插入结果为select和值混合示例
复制代码代码如下:Stringslctpsql="selectid,"+uid+","+ddd+","+score+",'"+mark+"',"+markid+","+exam.getId()+"fromTest_PaperwheretestBaseId=(selectidfromTest_BasewherebaseTestId="+judgemap...
数据库操作教程 2022-09-23 18:00:33 -
MSSQL中进行SQL除法运算结果为小数却显示0的解决方法
今天在用MSSQL进行SQL除法运算时,发现运算结果有小数,而整数部分为0时,结果直接显示为0,经过一翻测试发现了解决方法,拿来分享。假设有如下的一段SQL除法运算:selectfield1/field2fromtable假设其运算结果应该为0.123,但实际在MSSQL查询编辑器中运算直接就显示为0了,那么要想显示其真实结果,有什么办法呢?方法就是将分子field1的数据类型强制转换为float型,方法如下:selectcast(field1asfloat)/field2fromtable...
数据库操作教程 2022-09-23 17:47:22