1.Sql Server代码备份数据库
declare @filename nvarchar(100)
set @databasename=’WorkProject’ –数据库名字
set @filename=’D:\’+@databasename+convert(nvarchar(10),getdate(),112)+’.bak’ –备份数据库存放文件的目录和文件名
BACKUP DATABASE @databasename TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N’备份’, NOSKIP , STATS = 10, NOFORMAT
可以将这段代码加到Sql Server作业当中,实现自动备份数据库。
2.日期转换成字符串
Select convert(varchar(10),getdate(),120) 结果:2011-08-09
Select convert(varchar(16),getdate(),120) 结果:2011-08-09 15:56
在判断某天到某天的时候用到。
3.Sql Server时间算法
SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,getdate()),0) AS ’所在月的第一天’
SELECT DATEADD(MONTH,1+DATEDIFF(MONTH,0,getdate()),0)-1 AS ’所在月的最一天’
SELECT DATEADD(WEEKDAY,1-DATEPART(WEEKDAY,getdate()),getdate()) AS ’所在星期的第一天,星期日’
SELECT DATEADD(DAY,2-DATEPART(WEEKDAY,getdate()),getdate()) AS ’所在星期的第二天,星期一’
SELECT DATEADD(DAY,8-DATEPART(WEEKDAY,getdate()),getdate()) AS ’所在星期的最后一天’
SELECT CASE DATEDIFF(DAY,DATEADD(YEAR,DATEDIFF(YEAR,0,getdate()),0),DATEADD(YEAR,1+DATEDIFF(YEAR,0,getdate()),0)) WHEN 365 THEN ’平年’ ELSE ’闰年’ END 是否为闰年
.自增列重新从1开始
truncate table 你的表名
会删除所有数据,自增列重新从1开始
5.出现数据项的序号
Select ROW_NUMBER() OVER(Order By User_Id) as row,* From t_User
有了序号以后,可以对序号进行处理,主要用到分页当中。
6.根据其他表数据来批量更新数据。
Update 表名1 set a.WoUs_Score=b.Num1 from 表名1 as a join 表明2 As b on a.WoUs_Id=b.Num
主要用到对数据的批量更新上。
7.批量插入数据
insert into 表名(字段1,字段2) Select 字段1,字段2 From 表名2
8.对所取的字段进行判断
Select Case When 字段1>0 then 1 else case when 字段2==0 then 0 else -1 end end From 表名 Case When 语句可以嵌套
Select IsNull(字段1,0) From 表名 如果字段为Null,则显示0
9.Sql Server事务处理
–执行业务
IF @@error <> 0 –@@error==0表示执行成功,其他表示执行失败
Begin
RollBack Transaction T –回滚业务
End
Else
Begin
COMMIT Transaction T –提交业务
end
10.当数据库日志文件非常大时,需要截断日志。
BACKUP LOG 数据库名 WITH NO_LOG
然后再收缩文件和数据库。
这只是第一部分,以后还会再发上来一些Sql Serve实用技巧,敬请关注。
本文标题:Sql Serve实用技巧
浙公网安备 33010602011771号