IN和EXISTS
IN和EXISTS EXISTS要远比IN的效率高。里面关系到full table scan和range scan。几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。
Sql Server2008格式化工具
自带的没有。 可以使用插件 SSMSToolsPack 和 sql complete 前者完全免费,得过2010国外一个评比的免费插件银奖还是铜奖。可以格式话关键字的大小写,SQL Snippets 这个功能比较好,定义常用的语句的缩写,以前很长的语句几个字母代表回去就写完了,省了不少时间。还有很多很有用的功能,具体的可以到http://www.ssmstoolspack.com/去看看 后者用的少,要使用全部功能的话,得花钱。免费版就可以格式化书写的格式了http://www.devart.com/dbforge/sql/sqlcomplete/ sql server 都没有出现过自带格式化功能,都是通...
SQL触发器删除关联记录
SQL触发器:当改变(增、删、改)数据表的记录时,绑定在SQL语句(增、删、改)中的触发器能够触发某些事件或者函数,所以我们可以在触发器中编写一些处理语句。 比如,当我们删除新闻类别的时候,由于外键的原因,我们无法删除新闻类别下有新闻内容的记录,但是通过触发器,我们就可以实现。 delete from category where id=5 --sql删除语句 create trigger trigcategorydelete --当执行sql删除语句时,执行触发器 on category after delete as begin delete news where caId=(select id from deleted) --删除...
SQL Profiler trace使用方法
SQL Server Profiler的使用方法可以见这篇Sql2005性能工具(SQL Server Profiler和数据库引擎优化顾问)使用方法详解 昨日,跟踪了某个程序的sql执行,然后打开trc(SQL Server Profiler的跟踪文件)一看,2分钟就记录了800条数据, 绝大多数都不是我想要的数据,这个工具也没有筛选功能,要从这么多数据中找出我想要的,还真是麻烦。 这里分享下别人的经验 1.如何更有效的跟踪呢 应用程序的连接字符串里加上“Application Name”/“app”键,这样,在新建跟踪时, 可以在”列筛选器”里根据ApplicationName进行过滤(如...
SQL SERVER获取星期
-------------------------------------------------------------- --FUNCTION Name:udf_WeekDayName --作者:数据库之家 --FUNCTION :SQL SERVER获取星期 ---------------------------------------------------------- CREATE FUNCTION [dbo].[udf_WeekDayName] ( )RETURNS @WeekDayName TABLE([Id] INT,[WeekDayName] NVARCHAR(15))ASBEGIN INSERT INTO @WeekDayName ([Id],[WeekDayName]) VALUES (0,'Saturday'),(1,'Sunday'),(2,'Monday'),(3,'Tuesday'),(4,'Wednesday'),(5,'Thursday'),...
SQL中group by的用法
首先先贴两条sql,大家看看有啥区别 view plain select * from all_txt A where id=(SELECT id from all_txt view plain where A.key_value = key_value ORDER BY release_time DESC limit 1); view plain select * from (select *,max(release_time) as timea view plain from all_txt group by key_value order by release_time desc) a order by timea desc; 然后说明下表的重要字段为三个id,key_value,release_time 作用是取每个相同key_value中release_time最新的...
优化SQL查询
1、首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生欀如一条SQL语句如果用来从一个10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。 可见,执行计划并不是固定的,它是“个性化的”。产生一个正确的“执行计划”有两点很重要: (1) SQL语句是否清晰地告诉查询优化器它想干什么? (2) 查询优化器得到的数据库...
SQL查询按姓氏笔画排序
按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多
SQL数据库加密
数据库加密: select encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码')= 1--相同;否则不相同 encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码')= 1--相同;否则不相同