随笔分类 -  SQL Server

摘要:创建表tbl_student,tbl_luofxCREATE TABLE [dbo].[tbl_luofx]( [t_name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [id] [int] NULL) ON [PRIMARY]CREATE TABLE [dbo].[tbl_Student]( [ID] [int] IDENTITY(1,1) NOT NULL, [学生ID] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, [学生姓名] [nvarchar](... 阅读全文
posted @ 2012-02-23 12:06 流浪者的飘 阅读(252) 评论(0) 推荐(0)
摘要:行转列、列转行 阅读全文
posted @ 2012-02-23 10:07 流浪者的飘 阅读(25791) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/aji88/archive/2010/10/21/1857296.html第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 这是计算一个月第一天的SQL 脚本: SELECTDATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回当 阅读全文
posted @ 2011-12-07 14:29 流浪者的飘 阅读(378) 评论(0) 推荐(0)
摘要:写有效率的SQL查询(I)大型系统的生产环境,一般情况下,我们评价一条查询是否有效率,更多的是关注逻辑IO(至于为什么,回头补一篇)。我们常说,“要建彪悍的索引”、“要写高效的SQL”,其实最终目的就是在相同结果集情况下,尽可能减少逻辑IO。1.1where条件的列上都得有统计信息。没统计信息SQLServer就无法估算不同查询计划开销优劣,而只能采用最稳妥的Scan(不管是table scan还是clustered index scan)。一般情况下我们不会犯这种错误——where条件里不使用非索引列是个常识。索引上的统计信息是无法删除的。1.2尽量不使用不等于(!=)或者NOT逻辑运算符。 阅读全文
posted @ 2011-12-07 14:24 流浪者的飘 阅读(179) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/kivenhou/archive/2010/10/06/1844856.html具体要注意的:1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=02.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。优化器将无法通过索引来确定将要命 阅读全文
posted @ 2011-12-07 14:23 流浪者的飘 阅读(153) 评论(0) 推荐(0)
摘要:接下来我们说说“涵盖索引”和include索引。所谓的涵盖索引,就是传统方式在多个列上创建的索引。“inlude索引”是SQL2k5提供的新功能,允许添加非键列到非聚集索引的叶节点上。创建涵盖索引:createindexix_tb_col1_col2ontb(col1,col2)创建include索引:createindexix_tb_col1ontb(col1)include(col2,col3,col4)涵盖索引和include索引的区别在于,涵盖索引的所有列都是键列,索引行的物理存储顺序就是col1、col2的顺序,这也是误区6之所以称为误区的原因。涵盖索引可以是聚集索引,也可以是非聚集 阅读全文
posted @ 2011-12-07 14:22 流浪者的飘 阅读(211) 评论(0) 推荐(0)
摘要:declare @tmpTbl Table(uid int)declare @userid intbegin begin TRAN LUOFUXIAN INSERT INTO @tmpTbl(uid) SELECT userid FROM tbl_news declare tmpCursor CURSOR FOR SELECT uid FROM @tmpTbl OPEN tmpCursor FETCH NEXT FROM tmpCursor into @userid while @@FETCH_... 阅读全文
posted @ 2011-12-07 14:21 流浪者的飘 阅读(187) 评论(0) 推荐(0)
摘要:SQL函数实例: returns 和returnCREATE FUNCTION [dbo].[lfx_Len]( @char VARCHAR(2000)--变量)RETURNS intBEGIN RETURN len(@char+'<LUOFUXIAN>')END 阅读全文
posted @ 2011-12-07 14:20 流浪者的飘 阅读(183) 评论(0) 推荐(0)
摘要:1、记录到XML变量declare @cxml xmlset @cxml=(select * from zd_storeP for XML RAW('store'),ROOT('stores'))select @cxml2、XML到记录集方法一:用OPENXML 90000条记录速度测试,22s,16s,16sdeclare @cxml xml,@nxml intset @cxml=(select * from zd_storeP for XML RAW('store'),ROOT('stores')) --大概1sselect 阅读全文
posted @ 2011-12-07 14:17 流浪者的飘 阅读(437) 评论(0) 推荐(0)
摘要:1、记录到XML变量declare @cxml xmlset @cxml=(select * from zd_storeP for XML RAW('store'),ROOT('stores'))select @cxml2、XML到记录集方法一:用OPENXML 90000条记录速度测试,22s,16s,16sdeclare @cxml xml,@nxml intset @cxml=(select * from zd_storeP for XML RAW('store'),ROOT('stores')) --大概1sselect 阅读全文
posted @ 2011-02-10 09:21 流浪者的飘 阅读(178) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/kivenhou/archive/2010/10/06/1844856.html具体要注意的: 1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。优化器将无法通过索引来 阅读全文
posted @ 2010-10-21 14:41 流浪者的飘 阅读(458) 评论(0) 推荐(1)
摘要:接下来我们说说“涵盖索引”和include索引。所谓的涵盖索引,就是传统方式在多个列上创建的索引。“inlude索引”是SQL2k5提供的新功能,允许添加非键列到非聚集索引的叶节点上。创建涵盖索引:create index ix_tb_col1_col2 on tb( col1, col2)创建include索引:create index ix_tb_col1 on tb( col1)include(col2, col3,col4) 涵盖索引和include索引的区别在于,涵盖索引的所有列都是键列,索引行的物理存储顺序就是col1、col2的顺序,这也是误区6之所以称为误区的原因。涵盖索引可以 阅读全文
posted @ 2010-10-21 14:41 流浪者的飘 阅读(284) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/kivenhou/archive/2010/10/06/1844856.html具体要注意的: 1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。优化器将无法通过索引来 阅读全文
posted @ 2010-10-21 14:40 流浪者的飘 阅读(206) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/cn_wpf/archive/2007/08/03/841911.html大型系统的生产环境,一般情况下,我们评价一条查询是否有效率,更多的是关注逻辑IO(至于为什么,回头补一篇)。我们常说,“要建彪悍的索引”、“要写高效的SQL”,其实最终目的就是在相同结果集情况下,尽可能减少逻辑IO。1.1 where条件的列上都得有统计信息。没统计信息SQLServer就无法估算不同查询计划开销优劣,而只能采用最稳妥的Scan(不管是table scan还是clustered index scan)。一般情况下我们不会犯这种错误——where条件里 阅读全文
posted @ 2010-10-21 14:38 流浪者的飘 阅读(220) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/aji88/archive/2010/10/21/1857296.html第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回 阅读全文
posted @ 2010-10-21 14:32 流浪者的飘 阅读(887) 评论(0) 推荐(0)
摘要:go/* CTE 存储过程分页*/ALTER PROCEDURE [dbo].[T_StocPage]( @RecordCount int = 0 output, --记录总数[返回] @PageCount int =0 output, @PageSize int = 10, -- 页尺寸 @PageIndex int = 1, -- 页码 @TableName nvarchar(255), -- 表名 @IdentityColumnName nvarcha... 阅读全文
posted @ 2010-04-01 09:29 流浪者的飘 阅读(173) 评论(0) 推荐(0)
摘要:1.查找重复数据表的id以及重复数据的条数 select max(id) as nid,count(id) as 重复条数 from tableName group by linkname Having Count(*) > 1 2.查找重复数据表的主键 select id from UsedCar 阅读全文
posted @ 2010-03-18 11:03 流浪者的飘 阅读(6416) 评论(0) 推荐(0)
摘要:原文地址:http://hi.baidu.com/%BC%D9%BA%EC%D2%B6%CE%E8%CE%F7%B7%E7/blog/item/81f35da209e287abcbefd005.html1. 什么是SQL注入所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据。2. SQL注入的种类从具体而言,SQL注入可分为五大类,分别是:数字型注入、字符型注入、搜索型注入(like)、in型的注入、句语连接型注入。从应用来说,要特别注意IP、搜索、批量删除、 阅读全文
posted @ 2009-12-30 18:22 流浪者的飘 阅读(578) 评论(0) 推荐(0)