随笔分类 -  SQL SERVER

摘要:http://www.codeproject.com/Articles/715550/SQL-Server-Replication 阅读全文
posted @ 2014-01-26 21:38 Master HaKu 阅读(173) 评论(0) 推荐(0) 编辑
摘要:http://www.codeproject.com/Articles/265760/Using-SQL-Server-2011-T-SQL-New-Features 阅读全文
posted @ 2013-12-08 17:51 Master HaKu 阅读(151) 评论(0) 推荐(0) 编辑
摘要:SQL行转列是比较经典的问题:比如有如下数据表,有如下某一款号(表1): 颜色 尺码 库存 红色 S 10 红色 M 80 白色 L 50 白色 S 60要将上面的表转化为如下格式(表2):颜色 S M L红色 10 80 0白色 60 0 50动态sql:create table #tbl_0( color nvarchar(12), nsize nchar(1), store int)insert into #tbl_0select 'red', 'S', '10' union allselect 'red', 'M& 阅读全文
posted @ 2013-07-19 17:15 Master HaKu 阅读(438) 评论(0) 推荐(0) 编辑
摘要:updateCCTDB..Area_InfosetParentStr=b.ParentStrfromCCTDB..Area_InfoainnerjoinTempAreabona.AreaId=b.AreaId 阅读全文
posted @ 2012-08-10 09:47 Master HaKu 阅读(424) 评论(0) 推荐(0) 编辑
摘要:今天别人问了我一道复杂的sql面试题, 题目是这样的:--code 价格 时间'0010' 100 '2012-08-01 00:00:00.000''0010' 100 '2012-08-02 00:00:00.000''0010' 100 '2012-08-03 00:00:00.000''0010' 100 '2012-08-05 00:00:00.000''0012' 120 '2012-08-07 00:00:00.000'& 阅读全文
posted @ 2012-07-12 12:03 Master HaKu 阅读(502) 评论(0) 推荐(0) 编辑
摘要:今天刚装了SQL Server 2012, 界面和原来2008没什么大的区别在刚连接的时候出现了点错误,报了"Named Pipe Provider"错误解决如下: 连接实例应该为: ComputerName\Your Instance截图如下: 阅读全文
posted @ 2012-07-06 11:17 Master HaKu 阅读(259) 评论(0) 推荐(0) 编辑
摘要:一段复杂的逻辑,原先的代码我使用#tmp临时表来实现,性能是不好的,而且要考虑到多用户时的锁的问题代码如下:declare@StartDatedatetimedeclare@EndDatedatetimeselect@StartDate='2012-09-28'select@EndDate='2012-10-03'ifexists(select*fromtempdb..sysobjectswherenamelike'#tmpPolicyId%')droptable#tmpPolicyIdifexists(select*fromtempdb..sy 阅读全文
posted @ 2012-05-28 16:37 Master HaKu 阅读(1301) 评论(0) 推荐(0) 编辑
摘要:CTE - Common Table Expression(公用表达式)是SQL 2005最重要的改进之一。子查询有时候使用起来嵌套很复杂, 而使用#tmp类似的临时表, 性能又比较差。这个时候,介于两者之间的解决方案,CTE诞生了。我们可以用它来替代临时表在使用CTE时应注意如下几点:1. CTE后面必须直接跟使用CTE的SQL语句(如select、insert、update等),否则,CTE将失效2. CTE后面也可以跟其他的CTE,但只能使用一个with,多个CTE中间用逗号(,)分隔如下面的SQL语句所示: withcte1 as( select * from table1 where 阅读全文
posted @ 2012-05-26 16:55 Master HaKu 阅读(484) 评论(0) 推荐(0) 编辑
摘要:子查询分为独立子查询和相关子查询什么时候该利用子查询,我们可以先来看下面几个实际的例子。我们以Northwind数据库为例1. 返回在每月最后实际订单日期发生的订单(独立子查询) 思路:由于每个月最后实际订单最后一天是唯一的,所以我们 可以利用内层查询分组来实现。SELECTOrderID,CustomerID,EmployeeID,OrderDate,RequiredDateFROMdbo.OrdersWHEREOrderDateIN(SELECTMAX(OrderDate)FROMdbo.OrdersGROUPBYEmployeeID)2. 为每个员工返回具有最大OrderDate的订单( 阅读全文
posted @ 2012-04-10 09:39 Master HaKu 阅读(337) 评论(0) 推荐(0) 编辑
摘要:CREATEPROCEDUREspGetPageOfRecords@pageSizeint=20,--分页大小@currentPageint,--第几页@columnsvarchar(1000)='*',--需要得到的字段@tableNamevarchar(100),--需要查询的表@conditionvarchar(1000)='',--查询条件,不用加where关键字@ascColumnvarchar(100)='',--排序的字段名(即orderbycolumnasc/desc)@bitOrderTypebit=0,--排序的类型(0为升序 阅读全文
posted @ 2011-11-21 15:29 Master HaKu 阅读(180) 评论(0) 推荐(0) 编辑
摘要:ROW_NUMBER()根据over后的order by字据的字段排序,返回一个不断递增的整数.[代码]结果:CompanyName ContactName City RowNum---------------------------------------- ------------------------------ --------------- --------------------Drachenblut Delikatessen Sven Ottlieb Aachen 1Rattlesnake Canyon Grocery Paula Wilson Albuquerque 2Old 阅读全文
posted @ 2011-02-16 16:24 Master HaKu 阅读(605) 评论(0) 推荐(0) 编辑
摘要:在SQL SERVER中,cast和convert函数都可用于类型转换,其功能是相同的,只是语法不同.cast一般更容易使用,convert的优点是可以格式化日期和数值.代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--selectCAST('123'asint)--123selectCONVERT(int,'123')--123selectCAST(123.4asint)--123selectCONVERT(int,123.4)--123sel 阅读全文
posted @ 2011-02-15 16:28 Master HaKu 阅读(83754) 评论(0) 推荐(3) 编辑
摘要:在SQL SERVER2005中对于错误的处理,引入了try catch块.例如:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--declare@ErrMsgvarchar(1000)begintryselect5/0endtrybegincatchset@ErrMsg=ERROR_MESSAGE()raiserror(@ErrMsg,14,1)print'ErrorMsg:'+error_message()print'ErrorNumber: 阅读全文
posted @ 2011-02-15 15:56 Master HaKu 阅读(307) 评论(0) 推荐(0) 编辑
摘要:在实际编写sql的过程中,我们往往会遇到一些比较复杂的sql场景,这个时候,我们利用自查询可以解决.问题: 返回在每月最后实际订单日期发生的订单T-sql代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/----返回在每月最后实际订单日期发生的订单--(Ordersplacedonlastactualorderdateofthemonth)SELECTOrderID,CustomerID,EmployeeID,OrderDateFROMdbo.Ord 阅读全文
posted @ 2011-02-07 11:14 Master HaKu 阅读(453) 评论(0) 推荐(0) 编辑
摘要:我们可以在一个事务中实现,首先删除计算字段,然后修改字段类型,最后将计算字段加回原来的表:[代码] 阅读全文
posted @ 2010-05-19 11:18 Master HaKu 阅读(669) 评论(0) 推荐(1) 编辑
摘要:建表语句:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--USEtestGOIFEXISTS(SELECT1FROMsysobjectsWHEREname='Orders')DROPTABLEOrdersIFEXISTS(SELECT1FROMsy... 阅读全文
posted @ 2010-05-17 16:11 Master HaKu 阅读(1754) 评论(0) 推荐(0) 编辑
摘要:首先,建立测试表,本例我们采用经典的Customer 1-->n Order结构,如下:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--USEtestGOIFEXISTS(SELECT1FROMsysobjectsWHEREname='Ord... 阅读全文
posted @ 2010-05-17 15:26 Master HaKu 阅读(309) 评论(0) 推荐(0) 编辑
摘要:在sql中,有时候游标并不能实现所有的循环操作,比如当双重循环时,内层重复定义动态游标就是sql语法所不允许的.下面介绍一种利用临时表替代游标的方法.sql代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--usetestgo--假设有个table,... 阅读全文
posted @ 2010-04-23 16:49 Master HaKu 阅读(865) 评论(0) 推荐(0) 编辑
摘要:1. 设置项目改为用 IIS, 而不是VS 内置的 web server 点击Web Project的右键属性->Start Options->Use custom serverbase url: http://localhost/2.将IISDefault Web Server指向Web项目所在的目录 打开IIS, Default Web Site->右键属性->Home... 阅读全文
posted @ 2010-04-19 13:48 Master HaKu 阅读(4314) 评论(0) 推荐(0) 编辑
摘要:前几天遇到个问题,在SQL SERVER中做了一个复杂的view,由于这个view要用到一个数据量很大的表格来查询历史记录,因此用到了自连接。但是运行下来速度很慢,需要3分多种。后来找到了原因,原来是没有给连接键加上索引。现总结如下:如果一个表格数据量很大,需要自连接时,最好给连接的字段加上索引。索引加好以后运行下来一看,才5秒。简直不能比啊!呵呵,所以看来,索引的作用还是很大的。 阅读全文
posted @ 2009-07-20 14:49 Master HaKu 阅读(1030) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示