随笔分类 -  SQL

摘要:执行这段脚本,能知道哪个数据库用户、哪台机器锁住了该表,哪个用户哪台机器在等待该资源。SELECT /*+ choose */ bs.username "Blocking User", bs.username "DB User", ws.username "Waiting User", bs.sid... 阅读全文
posted @ 2012-11-19 09:11 peter cheng 阅读(342) 评论(0) 推荐(0)
摘要:With用法:The WITH query_name clause lets you assign a name to a subquery block. You can then reference the subquery block multiple places in the query by specifying the query name. Oracle optimizes the query by treating the query name as either an inline view or as a temporary table.WITH <alias_one 阅读全文
posted @ 2011-08-18 20:17 peter cheng 阅读(1116) 评论(0) 推荐(1)
摘要:约束和索引, 前者是用来检查数据的正确性,后者用来实现数据查询的优化,目的不同。创建唯一约束与创建唯一索引有所不同:创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。创建唯一索引只会创建一个唯一索引,不会创建Constraint。也就是说其实唯一约束是通过创建唯一索引来实现的。在删除时这两者也有一定的区别:删除唯一约束时可以只删除约束而不删除对应的索引,所以对应的列还是必须唯一的,而删除了唯一索引的话就可以插入不唯一的值。另:UNIQUE Constraints vs UNIQUE IndexesMany database administrat 阅读全文
posted @ 2011-08-17 15:19 peter cheng 阅读(3161) 评论(1) 推荐(0)
摘要:View Code CREATE procedure [dbo].[paging](@pagesize int, --每页显示多少条记录@pageindex int, --显示第几页@fromTable varchar(1000), --查询表格,包括连表条件@strwhere varchar(1000), --查询条件@strorderby varchar(64), --排序条件,不带Order关键字@Fields varchar(2000), --查询字段,多个字段时用','隔开@id varchar(30) --主键字段)as declare @order varchar 阅读全文
posted @ 2011-06-13 09:07 peter cheng 阅读(165) 评论(0) 推荐(0)
摘要:执行一存储过程报这个错误,因为这个存储过程有一个参数,所以我第一反应是查看这个参数对应的原表和插入数据的表的字段的长度是否不一致或者或者字段值超出长度,除了前后长度不一样外,没有数据超过长度,所以我把长度改成一致试试,还是不行,错误信息提示的错误行不靠谱,只能一部分一部分的调试,不知道各位大大有没有更好的调试方法,请赐教,比如有人说什么XX查找法的,不太记得了...最后终于找到原因找到的出错的部分:原表的字段长度:插入数据的表的对应字段长度:,而原表中有一条数据LEN出来确实超过100,找出问题所在接下来就是解决问题咯... 阅读全文
posted @ 2011-05-19 09:21 peter cheng 阅读(2974) 评论(28) 推荐(1)
摘要:看到好多技术论坛上误导人说:视图只能进行查询,不能进行增删改,所以转发一篇大牛的文章:介绍一下在SQL SERVER中,如何对视图进行增删改。假使用户有Name,Remark两项信息,但是没有存放在同一张表中,而是分开存储在两个表UserBase(ID, Name),UserExtent(ID, Remark)中。为使用方便,建立一个视图Users,用于表示用户的完整信息,其定义如下:CREATE VIEW [dbo].[Users]asSELECT b.ID as ID, b.Name as Name, e.Remark as Remark FROM UserBase b, UserExte 阅读全文
posted @ 2011-05-16 16:28 peter cheng 阅读(830) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/htl258/archive/2010/03/28/5424234.aspx上次转载的这篇看着比较繁琐,这个比较清爽。第一步(SQL2005、SQL2008):开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server网络配置-->MSSQLSERVER(这个名称以具体实例名为准)的协议-->TCP/IP-->右键-->启用第二步:SQL2005:开始-->程序-->Micros 阅读全文
posted @ 2011-04-20 10:09 peter cheng 阅读(451) 评论(0) 推荐(0)
摘要:今儿同学问了我一需求,如下图:原本表结构:,要得到的结果:我的SQL语句:SELECT DISTINCT Name,code,p.DateFROM PersonOUTER APPLY( SELECT JDate= STUFF(REPLACE(REPLACE( ( SELECT DISTINCT SUBSTRING(CONVERT(VARCHAR(10),Date,111),9, 2) AS date1 FROM Person WHERE code='021' FOR XML AUTO ), '<Person date1="', '| 阅读全文
posted @ 2011-03-14 16:39 peter cheng 阅读(1405) 评论(0) 推荐(1)
摘要:1 SELECT COUNT(1) AS Is_PK 2 FROM syscolumns 3 JOIN sysindexkeys 4 ON syscolumns.id=sysindexkeys.id AND syscolumns.colid=sysindexkeys.colid 5 JOIN sysindexes 6 ON syscolumns.id=sysindexes.id AND sysindexkeys.indid=sysindexes.indid 7 JOIN sysobjects 8 ON sysindexes.name=sysobjects.name AND sysobjects 阅读全文
posted @ 2011-03-04 10:39 peter cheng 阅读(1492) 评论(0) 推荐(0)
摘要:效果如下:语句:[代码] 阅读全文
posted @ 2011-02-16 09:47 peter cheng 阅读(502) 评论(0) 推荐(0)
摘要:原文:http://news.newhua.com/news1/Skills_Virus/2010/63/1063111128IA1KB4BHE93742H80KH639KAJ56IB42J8IF81K71KI5I1.htmlsql server 2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置:  1,SQL Server Management Studio Express(简写SSMS)   2,SQL Server 配置管理器/SQL Server Configuration Manager 阅读全文
posted @ 2011-02-11 09:01 peter cheng 阅读(317) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/zwxrain/archive/2009/03/20/4006431.aspxdecimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。定义 decimal 的列、变量和参数的两种特性如下: · p 小数点左边和右边数字之和,不包括小数点。如 123.45,则 p=5,s=2。 指定精度或对象能够控制的数字个数。· s 指定可放到小数点右边的小数位数或数字个数。p 和 s 必须遵守以下规则:0 = s = p = 38。numeric 和 阅读全文
posted @ 2011-01-07 16:30 peter cheng 阅读(833) 评论(0) 推荐(0)
摘要:--求某时间段内平均值的前十条的总和 SELECT SUM(Result) FROM ( SELECT TOP 10 AVG(Result) AS result FROM B_Record_DomainNamePage WHERE RecordTime BETWEEN '2010-12-16 13:11:27' AND '2010-12-22 13:1... 阅读全文
posted @ 2010-12-21 13:51 peter cheng 阅读(746) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/killercentury/archive/2008/05/13/2439186.aspxSection 1 - Restore Problem Description以下是我打算restore时遇到的problem===================================Restore failed for Server 'EVILKILLER-NB\SQLEXPRESS'. (Microsoft.SqlServer.Smo)System.Data.SqlClient.SqlError: The media set has 2 me 阅读全文
posted @ 2010-11-28 15:05 peter cheng 阅读(750) 评论(0) 推荐(0)
摘要:/**datepart()函数的使用*datepart()函数可以方便的取到时期中的各个部分*如日期:2006-07--0218:15:36.513*yy:取年2006*mm:取月7*dd:取月中的天2*dy:取年中的天183*wk:取年中的周27*dw:取周中的天1*qq:取年中的季度3*hh:取小时18*mi:取分钟15*ss:取秒36*以下简单的语句可以演示所取到的结果*/selectgetdate()selectdatepart(mm,getdate())selectdatepart(yy,getDate())selectdatepart(dd,getdate())selectdate 阅读全文
posted @ 2010-08-27 12:06 peter cheng 阅读(281) 评论(0) 推荐(0)
摘要:这里仅仅用到了一种方式而已,把数据库文件备份到磁盘然后在恢复.eg:注意:很多时候不能直接还原,因为数据不是独占打开.可能用到下面的过程当kill掉用户后最好使用单用户操作数据库原文:http://www.cnblogs.com/lileltp/archive/2007/11/04/949213.html 阅读全文
posted @ 2010-05-12 20:48 peter cheng 阅读(456) 评论(0) 推荐(0)
摘要:FOR,LOOP,WHILE,REPEAT是UDB/400的一种内部循环控制,用于遍历表中符合条件的每一行记录。 例如:目的:更新employee库,把所有北京籍员工的工资提高10%例一:使用FOR循环代码例二:使用LOOP循环代码例三:使用WHILE循环代码例四:使用REPEAT循环代码总结:四种循环结构实现的功能基本相同,用户可以根据自己的习惯选择使用。 原文:http://www.cnblogs.com/wildfish/archive/2008/01/09/1031943.html 阅读全文
posted @ 2010-04-06 22:19 peter cheng 阅读(340) 评论(0) 推荐(0)