文章分类 -  MSSQL

MSSQL
摘要:今天用timeLike'2008-06-01%'语句来查询该天的所有数据,被提示语句错误。查了一下才发现该模糊查询只能用于String类型的字段。自己也查阅了一些资料。关于时间的模糊查询有以下三种方法:1.Convert转成String,在用Like查询。select*fromtable1where... 阅读全文
posted @ 2015-03-25 14:35 zagelover 阅读(2858) 评论(0) 推荐(0)
摘要:今天在用sql脚本创建数据库时提示错误:无法获得数据库 'model' 上的排他锁。请稍后重试该操作由错误提示看出'model'模版数据库被其他进程占用了。用查看系统进程语句查看model数据库被哪些进程占用了,找到进程id,然后用kill命令杀掉占用进程--使用以下语句查出占用model数据库的进... 阅读全文
posted @ 2014-08-21 16:40 zagelover 阅读(4347) 评论(0) 推荐(1)
摘要:写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了。通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:SET STATISTICS PROFIL... 阅读全文
posted @ 2014-05-22 15:22 zagelover 阅读(303) 评论(0) 推荐(0)
摘要:MSSQL优化之————探索MSSQL执行计划作者:no_mIss最近总想整理下对MSSQL的一些理解与感悟,却一直没有心思和时间写,晚上无事便写了一篇探索MSSQL执行计划,本文讲执行计划但不仅限于讲执行计划。网上的SQL优化的文章实在是很多,说实在的,我也曾经到处找这样的文章,什么不要使用IN了,什么OR了,什么AND了,很多很多,还有很多人拿出仅几S甚至几MS的时间差的例子来证明着什么(有点可笑),让许多人不知道其是对还是错。而SQL优化又是每个要与数据库打交道的程序员的必修课,所以写了此文,与朋友们共勉。谈到优化就必然要涉及索引,就像要讲锁必然要说事务一样,所以你需要了解一下索引,仅仅 阅读全文
posted @ 2013-06-28 11:22 zagelover 阅读(124) 评论(0) 推荐(0)
摘要:刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析。我曾经一直认为我递交的SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够。在我职业初期,我只要能获取数据就很开心,而不去考虑数据是如何返回的,“执行计划”对我的查询作了什么工作。我以为SQL Server会自己去处理查询的性能问题的。作为一个刚进入IT行业或者刚学到新技术的软件工程师,在编写代码前不太可能有时间去学习其实必须掌握的知识。也许这是因为IT行业竞争太激烈的缘故。随着时间的流逝,数据库容量慢慢变大了。终于某天,客户对应用系统的查询性能感到不满意了。他面带怒容来找我,抱怨由于查询太慢,使得 阅读全文
posted @ 2013-06-28 11:04 zagelover 阅读(184) 评论(0) 推荐(0)
摘要:PIVOT用于将列值旋转为列名(即行转列),在SQL Server2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P完整语法:table_sourcePIVOT(聚合函数(value_column)FOR pivot_columnIN())UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现完整语法:table_sourceUNPIVOT(value_columnFOR pivot_columnIN())注意:PIVOT、UNPIVOT是SQL Server 2005 阅读全文
posted @ 2013-06-24 11:29 zagelover 阅读(157) 评论(0) 推荐(0)
摘要:写SQL模糊查询语句可能大多数是这样写:string sql = "select * from UserInfo where username like'%"+username +"%'";但这样直接在sql语句中拼接字符串似乎不太明智。很不安全。还有一种写法:string sql = "select * from UserInfo where username like @username";注明:这里无需单引号。按上面的写法,需要传递@username参数.,并且在传递参数值时需要写模糊查询特征字符‘%’.例如我们 阅读全文
posted @ 2013-04-10 15:05 zagelover 阅读(599) 评论(0) 推荐(0)
摘要:摘要1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql.1,EXEC的使用EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理。 阅读全文
posted @ 2012-12-07 17:28 zagelover 阅读(165) 评论(0) 推荐(0)
摘要:用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP COLUMN column_NAME 3.修改字段类型 ALTER TABLE table_name ALTER COLUMN column_name new_data_type 4.sp_rename 改名 更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 语法 sp_rename [ @objname = ] 'object_name' , [ @newna... 阅读全文
posted @ 2012-11-19 16:29 zagelover 阅读(13415) 评论(0) 推荐(1)
摘要:近日在使用sql2008的过程中,要对已经创建完成的表结构进行修改,却一直提示弹出如下提示:“不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改””开始还以为是因为我过多的在家里以及公司的机子上使用这个数据库引起的版本问题,但是最后确定并非是版本问题,经过搜素,找到了相应的解决方法:“打开SQL SERVER 2008 工具-->选项-->Designers-->表设计器和数据库设计器,把“阻止保存要求重新创建表的更改”的勾去掉然后点“确定”即可。” 阅读全文
posted @ 2012-11-05 18:52 zagelover 阅读(173) 评论(0) 推荐(0)