-
SQLSERVERPagerstoreprocedure分页存储过程
复制代码代码如下:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDURE[dbo].[Pagination]@Pageint=1,--当前页码@PageSizeint=10,--每页记录条数(页面大小)@Tablenvarchar(500),--表名或视图名,甚至可以是嵌套SQL:(Select*FromTabWhereID>1000)Tab@Fieldnvarchar(800)='*',--返回记录集字段名,","隔开,默认是"*"@OrderBynvarchar(100)='IDASC',--排序规则@Filternvarchar(500),--过滤条件@MaxPagesmallintoutput,--执行结果-1error,0false,maxpagetrue@TotalRowintoutput,--记录总数/*2007-07-1222:11:00update*/@Descriptvarchar(100)output--结果描述ASBEGIN--====================================...
数据库操作教程 2022-09-23 20:38:28 -
sqlserver错误602,未能在sysindexes中找到数据库的解决办法
解决办法:直接附加或附加应该是不行的,用脚本+导数据肯定没有问题。Sql2005转到Sql2000的步骤步骤1.生成for2000版本的数据库脚本Sql2005的mangerstudio--打开"对象资源管理器"(没有的话按F8),连接到你的实例--右键要转到2000的库--任务--生成脚本--在"脚本向导"的"选择数据库"中,确定选择的是要转到2000的库--勾选"为所选数据库中的所有对象编写脚本"--在接下来的"选择脚本选项"中,找到"为服务器版本编写脚本"项,选择"SQLServer2000"--其他选项根据需要设置--最后把脚本保存到一个.sql脚本文件2.在2000中创建目标数据库在查询分析器(或2005的mangerstudio在打开脚本文件),连接到SQLServer2000,执行上面生成的脚本.以创建一个新的数据库3.将数据从2005导到20002005的mangerstudio--打开"对象资源管理器"(没有的话按F8),连接到你的实例--右键要转到2000的库--任务--导出数据--在"SQLServer导入和导出向导"的"选择数据源"步骤中,确定选择的是要导出的数...
数据库操作教程 2022-09-23 20:35:58 -
SQL中exists的使用方法
有一个查询如下:复制代码代码如下:SELECTc.CustomerId,CompanyNameFROMCustomerscWHEREEXISTS(SELECTOrderIDFROMOrdersoWHEREo.CustomerID=cu.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS指定一个子查询,检测行的存在...
数据库操作教程 2022-09-23 20:34:48 -
sqlntext数据类型字符替换实现代码
复制代码代码如下:---ntext数据类型字符替换createtablett(sidINTIDENTITY(1,1),contntext)goinsertintott(cont)values(N'fdsadfdsa涂聚文工团缔友计算机信息技术有限公司可能性桔柑')goupdatettsetcont='fdsadfdsa涂聚文工团可能性缔友计算机信息技术有限公司桔柑'wheresid=1--去空格EXECsp_dboption'pubs','selectinto/bulkcopy','true'--sp_dboption'pubs','selectinto/bulkcopy','true'GODECLARE@ptrvalbinary(16),@iint,@kint,@fintselect@i=datalength(cont)fromttwheresid=1set@k=1while@i>1beginselect@f=CHARINDEX(SPACE(1),cont)fromttwheresid=1---SPACE(1)set@f=@f-1SELECT@ptrval=TEXTPTR(co...
数据库操作教程 2022-09-23 20:32:42 -
学习SQL语句(强大的groupby与selectfrom模式)
强大的groupby复制代码代码如下:selectstdname,isnull(sum(casestdsubjectwhen'化学'thenResultend),0)[化学],isnull(sum(casestdsubjectwhen'数学'thenResultend),0)[数学],isnull(sum(casestdsubjectwhen'物理'thenResultend),0)[物理],isnull(sum(casestdsubjectwhen'语文'thenResultend),0)[语文]from#studentgroupbystdnamegroupby与sum+case结合,可以将表1中的记录(行)变成表2的字段(列)。Sum里面如果没有case,那么出来的值,只能是全部科目的总和,用了case以后,就是某科的成绩;然后这里用了好几个sum,每个科目一个sum,于是表1中本来某人某科占一条记录的“行”就变成了表2里某人一条记录,每科做一个字段了利用selectfrom(selectfrom)的模式生成SQL语句复制代码代码如下:declare@sqlvarchar(4000...
数据库操作教程 2022-09-23 20:31:24 -
SQLServerSQL高级查询语句小结
Ø基本常用查询--selectselect*fromstudent;--all查询所有selectallsexfromstudent;--distinct过滤重复selectdistinctsexfromstudent;--count统计selectcount(*)fromstudent;selectcount(sex)fromstudent;selectcount(distinctsex)fromstudent;--top取前N条记录selecttop3*fromstudent;--aliascolumnname列重命名selectidas编号,name'名称',sex性别fromstudent;--aliastablename表重命名selectid,name,s.id,s.namefromstudents;--column列运算select(age+id)colfromstudent;selects.name+'-'+c.namefromclassesc,studentswheres.cid=c.id;--where条件select*fromstudentwhere...
数据库操作教程 2022-09-23 20:26:15 -
SQL中sp_executesql存储过程的使用帮助
摘自SQLserver帮助文档对大家优查询速度有帮助!建议使用sp_executesql而不要使用EXECUTE语句执行字符串。支持参数替换不仅使sp_executesql比EXECUTE更通用,而且还使sp_executesql更有效,因为它生成的执行计划更有可能被SQLServer重新使用...
数据库操作教程 2022-09-23 20:25:44 -
文本、Excel、Access数据导入SQLServer2000的方法
如下所示:复制代码代码如下:"AWU","102300","ZX240-3","2609997000","2609997000","3016924000","","3091775000","","","QCR0000285","""AYE","001800","ZX60","2609997000","2609997000","3016924000","","","","","",""虽然项目开发了应用程序,解析类似的文本文件,并将记录存储到数据库中,但效率显然不及批量导入。为了节约时间,从9:00PM开始,决定先尝试将文本文件导入Excel,再将Excel导入SQLServer2000...
数据库操作教程 2022-09-23 20:24:03 -
精妙的SQL和SQLSERVER与ACCESS、EXCEL的数据导入导出转换
* 说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) insert into b(a, b, c) select d,e,f from b; * 说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(ad...
数据库操作教程 2022-09-23 20:22:17 -
过程需要参数'@statement'为'ntext/nchar/nvarchar'类型
复制代码代码如下:declare@strCountTmpvarchar(100)--记录数 换成:复制代码代码如下:declare@strCountTmpnvarchar(100)--记录数...
数据库操作教程 2022-09-23 20:22:03 -
安装SQL2008时提示删除SQL2005Express工具的解决方法
修改注册表:HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoftSQLServer90ToolsShellSEM,将ShellSEM项重命名或删除即可。...
数据库操作教程 2022-09-23 20:21:38 -
IN&EXISTS与NOTIN&NOTEXISTS的优化原则小结
1.EXISTS的执行流程select*fromt1whereexists(selectnullfromt2wherey=x)可以理解为:复制代码代码如下:forxin(select*fromt1)loopif(exists(selectnullfromt2wherey=x.x)thenOUTPUTTHERECORDendifendloop对于in和exists的性能区别:如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了另外IN时不对NULL进行处理,如:select1fromdualwherenullin(0,1,2,null)结果为空...
数据库操作教程 2022-09-23 20:21:01