随笔分类 - 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](...
阅读全文
摘要:原文地址:http://www.cnblogs.com/aji88/archive/2010/10/21/1857296.html第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 这是计算一个月第一天的SQL 脚本: SELECTDATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回当
阅读全文
摘要:写有效率的SQL查询(I)大型系统的生产环境,一般情况下,我们评价一条查询是否有效率,更多的是关注逻辑IO(至于为什么,回头补一篇)。我们常说,“要建彪悍的索引”、“要写高效的SQL”,其实最终目的就是在相同结果集情况下,尽可能减少逻辑IO。1.1where条件的列上都得有统计信息。没统计信息SQLServer就无法估算不同查询计划开销优劣,而只能采用最稳妥的Scan(不管是table scan还是clustered index scan)。一般情况下我们不会犯这种错误——where条件里不使用非索引列是个常识。索引上的统计信息是无法删除的。1.2尽量不使用不等于(!=)或者NOT逻辑运算符。
阅读全文
摘要:原文地址: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 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。优化器将无法通过索引来确定将要命
阅读全文
摘要:接下来我们说说“涵盖索引”和include索引。所谓的涵盖索引,就是传统方式在多个列上创建的索引。“inlude索引”是SQL2k5提供的新功能,允许添加非键列到非聚集索引的叶节点上。创建涵盖索引:createindexix_tb_col1_col2ontb(col1,col2)创建include索引:createindexix_tb_col1ontb(col1)include(col2,col3,col4)涵盖索引和include索引的区别在于,涵盖索引的所有列都是键列,索引行的物理存储顺序就是col1、col2的顺序,这也是误区6之所以称为误区的原因。涵盖索引可以是聚集索引,也可以是非聚集
阅读全文
摘要: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_...
阅读全文
摘要:SQL函数实例: returns 和returnCREATE FUNCTION [dbo].[lfx_Len]( @char VARCHAR(2000)--变量)RETURNS intBEGIN RETURN len(@char+'<LUOFUXIAN>')END
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:原文地址: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 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。优化器将无法通过索引来
阅读全文
摘要:接下来我们说说“涵盖索引”和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之所以称为误区的原因。涵盖索引可以
阅读全文
摘要:原文地址: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 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。优化器将无法通过索引来
阅读全文
摘要:原文地址: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条件里
阅读全文
摘要:原文地址:http://www.cnblogs.com/aji88/archive/2010/10/21/1857296.html第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回
阅读全文
摘要: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...
阅读全文
摘要:1.查找重复数据表的id以及重复数据的条数 select max(id) as nid,count(id) as 重复条数 from tableName group by linkname Having Count(*) > 1 2.查找重复数据表的主键 select id from UsedCar
阅读全文
摘要:原文地址: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、搜索、批量删除、
阅读全文

浙公网安备 33010602011771号