随笔分类 -  SQL

转:SQL重复记录查询
摘要:select distinct * into #Temp from RepeatAlldrop table RepeatAllselect * into RepeatAll from #Temp drop table #Tempselect identity(int,1,1) id,* into #Temp from RepeatAlldrop table RepeatAll--selectselect name,sex,address from #Temp group by name,sex,address having (count(*)>1)--deletedelete from 阅读全文

posted @ 2011-03-09 10:55 catvi 阅读(197) 评论(0) 推荐(0)

转:SQl大数据量操作效率以及日志测试
摘要:/*--SQL Server 中的最小日志记录操作 原作: happydreamer(小黑) --整理..邹建--2003.12--*/ /*--控制数据库恢复选项 ALTER DATABASE 数据库名 SET RECOVERY <RECOVERY_OPTIONS> <RECOVERY_OPTIONS> 的取值: FULL | BULK_LOGGED | SIMPLE FULL: 系统将对介质错误提供完全保护。 如果数据文件损坏,介质恢复可以还原所有已提交的事务。 BULK_LOGGED: 将在介质错误保护程度与某些大规模或大容量操作 的最优性能及日志存储空间最少占用 阅读全文

posted @ 2011-03-09 10:52 catvi 阅读(1049) 评论(0) 推荐(0)

转发:图解SQL的Join
摘要:对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。假设我们有两张表。Table A 是左边的表。 Table B 是右边的表。 其各有四条记录,其中有两条记录是相同的,如下所示:下面让我们来看看不同的Join会产生什么样的结果。Inner join产生的结果集中,是A和B的交集。F 阅读全文

posted @ 2011-02-18 17:13 catvi 阅读(232) 评论(0) 推荐(0)

清理数据库挂马代码
摘要:update表名set字段名=replace(字段名,'&lt;ScriptSrc=http://c.n%75clear3.com/css/c.js&gt;&lt;/Script&gt;','') 阅读全文

posted @ 2009-06-17 10:42 catvi 阅读(160) 评论(0) 推荐(0)

EXEC的两种用法以及用动态语句创建临时表的问题
摘要:exec有两种用法,一种是调用存储过程,另一种是执行sql语句,用法如下:exec dbo.GetCustomer 'Create table #Temp'exec ('Create table #Temp')用动态语句创建临时表有一个问题,就是如果你不在它的作用域内就找不到。解决方法是把要调用临时表的语句都放在exec内,如:exec ('Create table #Temp_ie_bar(guid varchar(500)) select * from #Temp_ie_bar') 遇到的第三个sql的问题是sql语句中嵌入整型变量,这个如果 阅读全文

posted @ 2009-04-26 15:12 catvi 阅读(2373) 评论(0) 推荐(0)

支持百万数据的分页算法(for sql2005)
摘要:说白了是用了sql2005的新函数,用这个函数的新功能再实现存储过程分页就简单多了,而且效率比较高效Select * From (Select ROW_NUMBER() OVER (order by sort_id ) as RowNum,* FromTableA) as TempTableWhere RowNum Between 10 And 20 阅读全文

posted @ 2008-07-16 14:18 catvi 阅读(187) 评论(0) 推荐(0)

一段带有临时表和循环的存储过程
摘要:Create table #Temp([excel_issuer_name] [varchar](100) ,[cdo_issuer_name] [varchar](100) ,[excel_asset_name] [varchar](100) ,[cdo_facility_name] [varchar](100) ,[Asset_securityID] [varchar](100) ,[field_value] [varchar](100) ,[facility_id] [int] )Insert into #Temp([excel_issuer_name],[cdo_issuer_name 阅读全文

posted @ 2008-05-30 16:19 catvi 阅读(716) 评论(0) 推荐(0)

关于CONVERT(varchar(10),date,111)函数最后一个参数说明
摘要:这个sql函数,第一个参数代表要截取的长度,第二个代表数据库的字段,最后一个参数,也就是111代表那个,具体字段对应说明如下:-0 or 100 (1, 2) Defaultmon dd yyyy hh:miAM (or PM)1101U.S.mm/dd/yyyy2102ANSIyy.mm.dd3103British/Frenchdd/mm/yy4104Germandd.mm.yy5105Italiandd-mm-yy6106 (1)-dd mon yy7107 (1)-Mon dd, yy8108-hh:mi:ss-9 or 109 (1, 2) Default + milliseconds 阅读全文

posted @ 2007-07-03 10:14 catvi 阅读(2569) 评论(0) 推荐(1)

SQL语句取时间类型的小时值
摘要:在ms sql里有Day ,Year类似的函数,可是我如果想取时间类型字段的小时值呢,以下是解决办法,如下:CONVERT(varchar(2),receivedate,8),receivedate为数据库字段。 阅读全文

posted @ 2007-06-20 13:08 catvi 阅读(1353) 评论(0) 推荐(0)

中文操作系统与英文操作系统下日期比较问题
摘要:因为英文操作系统下,默认时间格式与中文有所区别,所以在比较的时候,转换成统一格式再比较。如下:CONVERT(varchar(10),date,111)与Convert.ToDateTime(wdcEndDate.Text).ToString(&quot;yyyy/MM/dd&quot;) ,其中date为你数据库中的字段,wdcEndDate为日期控件,目的就是转换成同一格式后再在sql比较。 阅读全文

posted @ 2007-06-14 17:11 catvi 阅读(272) 评论(0) 推荐(0)

获取当前插入记录的ID
摘要:其中sql语句写法为:INSERT INTO table(a,b)VALUES (1,2)SELECT @@IDENTITY AS 'Identity' ,然后用SqlCommand 对象的ExecuteScalar()方法获取即可,下面是写好了的一个函数。public static int ExecuteSql(string SQLString) { using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand(SQ 阅读全文

posted @ 2007-06-04 11:46 catvi 阅读(318) 评论(0) 推荐(0)

导航