随笔分类 -  SQL

摘要:.net+mssql2000百万数据分页研究公司一项目数据达到上百万,普通的分页方式满足不了要求,经常发生超时的错误,所以有必要对分页的方式来做下研究。经过搜集和测试,当前网上的成熟的分页方式有以下几种方案:分页存储过程1.以下为引用的内容: /* 说明:适合单表查询 cn-web.com提供 */CREATE PROCEDURE p_qcd_Pagination @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar(255)='', 阅读全文
posted @ 2012-08-01 14:39 清风寻梦 阅读(515) 评论(0) 推荐(0) 编辑
摘要:SQL Server 数据库定时自动备份【转】 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库。而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库。要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业。启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库TestDB1的完整备份,备份文件在C盘Backup文件夹中,文件名就是TestDB1+当时备份的日期字符串.bak。decl 阅读全文
posted @ 2012-03-13 16:51 清风寻梦 阅读(79553) 评论(8) 推荐(6) 编辑
摘要:一、问题有表如下:如何获得如下结果:二、解法一使用xml转换代码如下:view sourceprint?01CREATE TABLE body 02( 03ID int, 04BODY nvarchar(20) 05) 06go 07INSERT INTO body VALUES(1,'aaaa') 08INSERT INTO body VALUES(2,'bbbb') 09INSERT INTO body VALUES(1,'cccccc') 10INSERT INTO body VALUES(3,'ddddd') 11go 1 阅读全文
posted @ 2011-10-10 11:30 清风寻梦 阅读(6110) 评论(2) 推荐(0) 编辑
摘要:登陆SQL Server 2008时提示评估期已过的解决办法微软也太不厚道了,说我评估期已过,不给我机会登陆了,之前一点征兆都没有,郁闷。只有在网上找解决办法。找来找去,解决方法很多,但很多都不全面,因为我按照上面的解决办法,我的评估期还是过了。最后在贴子的回贴中有人补充了一点,基本上可以完全解决这个问题。解决办法,现整理如下:第一步:进入SQL2008配置工具中的安装中心第二步:再进入维护界面,选择版本升级第三步:进入产品密钥,输入密钥第四步:一直点下一步,直到升级完毕。 SQL Server 2008 Developer: PTTFM-X467G-P7RH2-3Q6CG-4DMYB SQL 阅读全文
posted @ 2011-07-16 09:35 清风寻梦 阅读(1924) 评论(0) 推荐(0) 编辑
摘要:@@ERROR和@@ROWCOUNT1. @ERROR当前一个语句遇到错误,则返回错误号,否则返回0。需要注意的是@ERROR在每一条语句执行后会被立刻重置,因此应该在要验证的语句执行后检查数值或者是将它保存到局部变量中以备将来使用。具体的分析请看下面的代码,一目了然。Update AF_CarInfo SET CarInfoID = 19 Where OilCost = 13 --执行后@@ERROR为547PRINT @@ERROR --执行后@@ERROR为0IF @@ERROR = 0BEGIN PRINT @@ERROREND----------------------------- 阅读全文
posted @ 2011-07-11 16:53 清风寻梦 阅读(1011) 评论(0) 推荐(0) 编辑
摘要:数据库 'tempdb' 的日志已满 执行sql 语句,中间没有用到临时表提示服务器: 消息 9002,级别 17,状态 2,行 1数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。网上找了下解决方案,大体是扩大临时库的日志文件的大小解决的解决过程:查看了下数据库的属性,是自动增长,不指定文件大小上限。在网上Google了很久,试了些方法都不行;数据库所在磁盘还有很大的可用空间,试着下重药了。直接把tempdb的数据文件和日志文件的大小改为3000M,问题解决。记录一下清空日志的命令:DUMP TRANSACTION dbname 阅读全文
posted @ 2011-06-13 17:24 清风寻梦 阅读(10245) 评论(0) 推荐(0) 编辑
摘要:SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P完整语法:table_sourcePIVOT(聚合函数(value_column)FOR pivot_columnIN(<column_list>))UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现完整语法:table_sourceUNPIVOT(value_columnFOR 阅读全文
posted @ 2011-04-22 12:43 清风寻梦 阅读(539) 评论(0) 推荐(0) 编辑
摘要:一、sqlserver日期时间函数SqlServer中的日期与时间函数1.当前系统日期、时间selectgetdate()2.dateadd在向指定日期加上一段时间的基础上,返回新的datetime值例如:向日期加上2天selectdateadd(day,2,'2004-10-15')--返回:2004-10-1700:00:00.0003.datediff返回跨两个指定日期的日期和时间边界数。selectdatediff(day,'2004-09-01','2004-09-18')--返回:174.datepart返回代表指定日期的指定日期部分 阅读全文
posted @ 2011-02-16 15:43 清风寻梦 阅读(171393) 评论(3) 推荐(10) 编辑
摘要:网上看到相同的问题的解决办法,于是起了这样一个标题,并把内容转载过来:问题的描述:在我的一个表中设置了自动增长列,后来把全部的记录删除掉后,重新插入的记录的列是从最大值的那个列接上去的。我想要自动增长列,从1开始,该怎么修改. 答案很简单,只要用一行sql代码就能全部搞定,如下:truncatetabletablename 阅读全文
posted @ 2010-09-20 10:50 清风寻梦 阅读(1790) 评论(0) 推荐(0) 编辑
摘要:1. 当前系统日期、时间select getdate()2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值例如:向日期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-1700:00:00.0003. datediff 返回跨两个指定日期的日期和时间边界数。select datediff(day,'2004-... 阅读全文
posted @ 2010-08-23 10:40 清风寻梦 阅读(3665) 评论(0) 推荐(0) 编辑
摘要:使用DataTable作为存储过程的参数 最近工作中写了几个存储过 程,需要向存储过程中传递字符串,因为SQL Server 2000中没有内置类似于 split 的函数,只好自己处理,将前台数据集中的一列用逗号拆分存到一个List中,再转化为字符串传给存储过程,很是麻烦。今天看了下SQL Server 2008的新特性,发现有表变量的使用,及其将DataTable作为参数的用法,就尝试了一下... 阅读全文
posted @ 2010-08-04 09:36 清风寻梦 阅读(3804) 评论(0) 推荐(1) 编辑
摘要:LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。LIKE 操作符LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。SQL LIKE 操作符语法SELECT column_name(s)FROM table_nameWHERE column_name LIKE pattern原始的表 (用在例子中的):Persons 表:Id LastName FirstName Addr... 阅读全文
posted @ 2010-07-30 10:14 清风寻梦 阅读(5543) 评论(0) 推荐(0) 编辑
摘要:SQL Server中, DateTime (日期)型操作操作SQL Server的数据,需求是将一个日期类型字段的时、分、秒去处,即 ‘2007-11-07 16:41:35.033’ 改为‘2007-11-07 00:00:00‘,所以查询了一下网上对DateTime类型操作的SQL语法,发现实现这个功能很简单。update YourTable ... 阅读全文
posted @ 2010-07-30 10:12 清风寻梦 阅读(3964) 评论(0) 推荐(0) 编辑
摘要:获得列名select name from syscolumns where id=object_id('ds_field')或select col_name(object_id('table'),1) from sysobjects where name='table'--读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有... 阅读全文
posted @ 2010-04-10 12:27 清风寻梦 阅读(3147) 评论(0) 推荐(0) 编辑
摘要:1.公元元年的第一天,也就是公元1年1月1日,那天是星期六。 2. 现行的公历是格利戈里历法,这个历法并不是连续的,中间缺少了11天。1752年9月2日的后一天并不是9月3日,而是9月14日。也就是说,从1752年9月3日到9月13日的11天并不存在。 3.抹掉这11天是由英国议会在1752年做出的决定。(详情见如下“历史的空白”) …… 微软和S... 阅读全文
posted @ 2010-04-08 12:41 清风寻梦 阅读(4042) 评论(0) 推荐(0) 编辑
摘要://////////////数据访问类using System;using System.ComponentModel;using System.Collections;using System.Web.Security;using System.Diagnostics;using System.Data;using System.Data.SqlClient;using System.Confi... 阅读全文
posted @ 2010-04-08 12:27 清风寻梦 阅读(429) 评论(0) 推荐(0) 编辑