(1) try catch 配合 Transactions 使用

--打开try catch功能
set xact_abort on
begin try
begin tran
insert into tableName(ID) values(1)
commit tran
print 'commited'
end try
begin catch
rollback
print 'rolled back'
end catch

(2)获取当前月前一个月有多少天(DatePart( date ,  datetime)  DateAdd(date , 数字 ,datetime) Cast(exp  as  datetime))

select DatePart
(day,DateAdd(DAY,-1,
Cast(cast(YEAR(getdate()) as nvarchar)+'-'+
cast(month(getdate()) as nvarchar)+'-01' as datetime))
)

(3)取到小数第二位四舍五入(类型转换)

Select Convert(Numeric(20,2), IsNull(50.01634,0))

结果:50.02

(4)获取时间

[1]一个月第一天:select DateAdd(mm,DateDiff(mm,0,getdate()),0)

--DateAdd当添加的值和初试值均为0时,返回的时间为1900-01-01 00:00:000

select DATEADD(mm,0,0);

[2]本年:year(getdate())

[3]本月:month(getdate())

[4]本日:Day(getDate())

[5]昨天的记录:datediff(day,[Datetime],getdate())=1  把Datetime换为你的相应字段,getdate()-Datetime即为时间差。

[6]本月/周/日记录:DateDiff(month/week/day,[dateadd],getdate())=0

[7]本周的星期一:Select  DateAdd(wk, DateDiff(wk,0,getdate()),  0)

[8]季度的第一天:Select  DateAdd(qq,  DateDiff(qq,0,getdate()),  0)

[9]当天的凌晨(半夜):Select  DateAdd(dd,  DateDiff(dd,0,getdate()),  0)

[10]本年的第一天::select  DateAdd(YY,DateDiff(yy,0,getdate()),0)

[11]去年的最后一天(今年的第一天减去3毫秒):select DateAdd(ms,-3,DateAdd( yy,  DateDiff( yy, 0, getdate()),  0))

[12]本月的第一天:select DateAdd( mm, DateDiff( mm, 0 , GetDate()), 0);

[13]本月的最后一天:select DateAdd(ms,-3, DateAdd(mm, DateDiff(mm,0,getdate()), 0))

[14]本年的最后一天:Select  DateAdd(ms,-3, DateAdd(yy,  DateDiff(yy, 0, getdate()) +1,  0))

[15]本月的第一个星期一:select  DateAdd(wk, DateDiff(wk,0, DateAdd(dd,6 - Datepart(day,getdate()) ,getdate()) ),  0)

[16]显示星期几:select DateName(weekday , getdate() );

[17]显示本月的天数:select DateDiff(dd , getdate() , DateAdd(mm , 1 , getdate()) );

[18]显示某年某月有多少天

create   Function DaysInMonth1(@datetime datetime)
returns int
as
begin
return Day( Datepart( dd, DateAdd( ms, -3, DateAdd(mm ,DateDiff(mm,0,@datetime)+1 , 0) ) ))
end
调用select dbo.DaysInMonth1('2012-2-13');

(5)获取当前数据库中所有用户的表

select * from sysobjects where xtype='U' 

(6)随机取出3条数据

Select  top 3 *  from Table  order by NewId()

(7)查找表中多余的重复记录

Select  *  from Table where ID  in( select SID from Table  group by ID having Count(Name)>1)

(8)关键字waitfor 主要有waitfor delay(推迟执行),waitfor time (特定时间执行)

waitfor delay '00:00:08'

print('Hello ,Im waitfrom delay')

waitfor time '20:49:50'

print('Hello,Im waitfor time')

(9)检测数据是否存在

[1]检测数据库是否存在

if( Exists(select * from sys.databases where name='School'))

select * from Student

go

[2]检测数据表是否存在

if( exists(select * from sys.objects where name='Student'))

select * from Student order by SID desc

go

[3]检测数据列是否存在

if(exists(select * from sys.all_columns where object_id=object_id('Student') and name='Sname'))

select * from Student

go

(10)表连接

--同时无条件的查询两个不相关的表,所得新表字段为两表字段之和,信息条数为两个信息条数的乘积 (即为:两表的笛卡尔积)

select  T.* , Student.*  from  T , Student

--交叉连接即为上边所讲的那种连接

select T.*,Student.* from T Cross Join Student

--随机数均可以产生0-1之间的随机数

Select   Rand();    select Rand( CheckSum(NewId()) )

--随机数0-9

select ABS(Rand());   select ABS(CheckSum(NewId()))%10

--随机数a-b之间

select a+ABS(checksum(newid()))%(b-a+1)

select 1+ABS(checksum(newid()))%100

字符串操作

--SubString字符串截取(str ,StartIndex , Length)

select SubString( 'Olive116', 1, 5)

--left/right从左边截取字符串

select Left/Right ( 'Olive', 3 )

--字符串替换Replace( str, str1, str2)

select Replace('OOLive','o','1')

--反转排序

select Reverse('Olive')

--删除指定的长度并在指定的起点处插入另一组字符

select Stuff('OliveOOO',6,3,'Hello')

--以指定的次数重复字符串的值

select Replicate('Olive',3)

--返回表达式中第一次出现的位置

select PatIndex('%Olive%','Hello!Olive')

--返回字符串中指定表达式的开始位置

select CharIndex('O','Hello,Olive')

--返回输入表达式的第一个字符的整数值

select UniCode('o')

--返回由数字数据转换来的字符数据

select STR(123.1314,4),LEN(STR(123.3212,321))

select STR(123.1334,4,4)

--发音匹配度

select Sname,SOUNDEX(Sname) from Student

--Difference()简化两个字符串发音相似度,返回0-4之间的值来反应两个字符的相似度,值越大就越相似

select Sname,SOUNDEX(Sname), Difference (Sname,'Olive') from Student

--查询重复记录

select * from Table where SID in (select SID from Table group by SID having COUNT(SID)>0)

--删除重复的记录(并保留SID最小的记录)

delete from Table where

SID in (select SID  from Table group by SID having COUNT(SID)>0)

and SID not in(select MIN(SID) from Student group by SID having count(SID)>0)

--双引号

select '''''' as result

--isnumeric()判断是否是数字是为1否为0

select IsNumeric('a')

--isdate()判断是否为日期是为1否为0

select IsDate('2012-3-2')

DataBase 之 常用操作的更多相关文章

  1. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  2. Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理

    摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■  详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...

  3. DBA必备:MySQL数据库常用操作和技巧

    DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...

  4. [转]Mysql命令行常用操作

    Mysql命令行常用操作 一.从命令行登录MySQL数据库服务器 1.登录使用默认3306端口的MySQL /usr/local/mysql/bin/mysql -u root -p 2.通过TCP连 ...

  5. MySQL常用操作总结

    MySQL常用操作 前提条件:已安装MySQL. 学习目标:用一条sql语句写出A和B的剩余数量 AA表 BB表 以上为一道面试题,接下来由这道面试题来回顾一些数据库的基本操作. 登录MySQL su ...

  6. mongodb的常用操作

    对于nosql之前工作中有用到bekerlydb,最近开始了解mongodb,先简单写下mongodb的一些常用操作,当是个总结: 1.mongodb使用数据库(database)和集合(collec ...

  7. Linux常用操作练习

    Linux常用操作练习 练习一:安装CentOS 1.设置为1G内存(才有图形界面).10G硬盘 2.分给交换分区2G(4G一下2G,8G-32G分4G-8G) 练习二:安装CentOS迷你版 1.安 ...

  8. MongoDB副本集的常用操作及原理

    本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...

  9. Linux下mysql的常用操作

    Linux下mysql的常用操作: 显示数据库 show databases; 选择数据库 use 数据库名; 显示数据库中的表 show tables; 显示数据表的结构 describe 表名; ...

随机推荐

  1. bzoj 1408 [Noi2002]Robot(欧拉函数)

    [题目链接]  http://www.lydsy.com/JudgeOnline/problem.php?id=1408 [题意] 求m的所有约数中,满足可以分解成(奇数个不同素数/偶数个不同素数/其 ...

  2. HDU 1708

    思路 :二位数组维护数目. #include<iostream> #include<stdio.h> #include<stdlib.h> #include< ...

  3. Hadoop中FileSystem的append方法

    今天在使用Hadoop 1.1.2版本进行FileSystem的append操作时报以下异常: org.apache.hadoop.ipc.RemoteException: java.io.IOExc ...

  4. 百度,你家云管家能靠谱点不?替你脸红!Shame on you!

    此文已提交百度云问题反馈, 坐等答复. 笔者最近下载某24+G分卷压缩文件, 24+G啊, 足足要下将近7个小时.满心欢喜的下载完却尼玛发现解压出错, 有6个文件无法解压?wrong password ...

  5. 优秀android开源项目与解决方案推荐

    后来加上的,因为太强大了,android上百个可立即使用的开源库介绍:https://github.com/Trinea/android-open-project Android上的FTP服务器  S ...

  6. 第三百零五天 how can I 坚持

    今天去E世界拿抽的奖品,白去了 一趟,结果已经被拿过去了,明天还得去另一个地拿,太折腾了,今天走了1万4千多步. 哎,徐斌啊,出去见个面,这个折腾啊,受不了,想干他.开个玩笑. 黄东月,为什么打字莫名 ...

  7. Web Service学习之五:WSDL详解

    WSDL是Web Service定义文档,不同平台 不同语言实现Web Service遵循的共同协议 ,在解析XML时按照各自语言的特点解析成相应的具体类.方法.参数和数据类型. WSDL是一个XML ...

  8. (转载)Linux启动过程详解

    启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘 ...

  9. Oracle的回收站和闪回查询机制(二)

    上一篇中讲诉了Oracle中一些闪回查询(Flashback Query),这是利用回滚段信息来恢复一个或一些表到以前的一个时间点(一个快照).要注意的是,Flashback Query仅仅是查询以前 ...

  10. 应用反射写的tostring方法

    应用反射写的tostring方法 应用反射写的tostring方法,方便以后查询 代码 package com.chzhao.reflecttest; import java.lang.reflect ...