设为首页 加入收藏

TOP

sql神器,再也不用记东记西了O(∩_∩)O(二)
2014-11-24 02:57:13 来源: 作者: 【 】 浏览:10
Tags:sql 神器 再也 不用 东记西
作 -- UPDATE t1 SET tclo=1 FROM t1,t2 WHERE t1.id=t2.id -------------------14=========================日期函数 -- --datediff(ex,begin,end) --时差--ex:表达式,begin:开始时间,end:结束时间,ex=end-begin SELECT DATEDIFF(hh,'2012-03-03 10:11','2012-03-04 09:11') --加时--ex:表达式,加时,时间 SELECT DATEADD(hh,24,'2012-03-03 10:11') -------------------15=========================行列互转(两种方式) --1 定义变量 DECLARE @result VARCHAR(255) SET @result = '' SELECT @result = @result + cast(tdd.[name] as varchar(255)) +',' FROM T tdd(NOLOCK) WHERE 1=1 IF(len(@result) - 1<0) SELECT '' AS [name] ELSE SELECT LEFT(@result,len(@result) - 1) AS [name] --2 使用 for xml path(''),使用stuff函数将第一个,号替换掉 SELECT [name]=stuff((select ','+cast(tt.[name] AS VARCHAR(10)) from T tt where 1=1 for xml path('')), 1, 1, '') FROM @temp -------------------16=========================查看/删除/创建表约束 --查看表约束 sp_helpconstraint 表名 --删除表约束 ALTER TABLE 表名 DROP CONSTRAINT 约束名 --创建表约束 ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT ('') FOR 字段 -------------------17===========================With ** AS()使用 --- 临时表 WITH tt AS ( SELECT * FROM tab ) -- 递归 WITH dept AS( SELECT cd.Code,cd.CodeName FROM CostDept cd(NOLOCK) WHERE cd.Code='0123' UNION ALL SELECT cd1.Code,cd1.CodeName FROM dept JOIN CostDept cd1(NOLOCK) ON dept.Code=cd1.ParentCode ) SELECT * FROM dept ------------------------------------------------------------------------------- SELECT tt.DeliveryOrderNO,tt.SysOrderType FROM ( SELECT T.DeliveryOrderNO, SysOrderType=stuff((select ','+cast(tt.SysOrderType AS VARCHAR(10)) from TMS_DeliveryOrderDetail tt where tt.DeliveryOrderNO=T.DeliveryOrderNO for xml path('')), 1, 1, '') FROM ( SELECT tdo.DeliveryOrderNO FROM TMS_DeliveryOrder tdo WHERE 1=1 and tdo.ReceivedDate>='2012-03-01 01:01' AND tdo.ReceivedDate<=GETDATE() AND tdo.OrderType=2 --AND tdo.DeliveryOrderNO='0103Y1203010001' ) T ) TT WHERE 1=1 -- and (charindex('13',SysOrderType)>0 OR charindex('13',SysOrderType)>0 OR charindex('16',SysOrderType)>0 OR charindex('17',SysOrderType)>0 OR charindex('18',SysOrderType)>0) --AND charindex('13',SysOrderType)=0 AND charindex('16',SysOrderType)=0 AND charindex('18',SysOrderType)=0 AND (charindex('10',SysOrderType)>0 OR charindex('17',SysOrderType)>0) AND (charindex('13',SysOrderType)=0 AND charindex('16',SysOrderType)=0 AND charindex('18',SysOrderType)=0) SELECT * FROM TMS_DeliveryOrderDetail tdod WHERE tdod.FactoryID IS NOT NULL -------------------18================Update 时增加 @ERROR<>0 OR @ROWCOUNT<>cnt(影响行数) 判断 IF(@@ERROR<>0 OR @@ROWCOUNT<>1) BEGIN ROLLBACK PRINT 'RollBack' RETURN END PRINT 'Commit Start' COMMIT PRINT 'Commit Over' SELECT * FROM TMS_DeliveryOrderDetail tdod WHERE EXISTS( SELECT * FROM TMS_SYN_Redeploy tsr WHERE tsr.RedeployCode IN ( ) --------------------19=====================大数据表循环删除脚本 DECLARE @icount INTEGER; DECLARE @StartDate date; DECLARE @EndDate date; SET @StartDate = CONVERT(date,'2012-08-01'); SET @EndDate = CONVERT(date,'2012-08-31'); ; WHILE 1=1 BEGIN DELETE TOP (20000) FROM [dbo].[ForecastBaseData] WHERE CreateDate>=@StartDate and CreateDate<=@EndDate ; SET @icount = @@ROWCOUNT ; IF @icount<>20000 BREAK ; WAITFOR DELAY '00:00:05' END --------------------19 END=====================
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇做为程序员对sql进行的性能优化 下一篇从mdf|ldf文件恢复sqlserver数据库

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)
·如何较为深入的理解c (2025-12-24 17:19:38)
·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)