Truncate与Delete的区别
trancate与delete都是删除数据,不同的是trancate是将表的所有数据都删除,而delete可以有选择地删除数据;
delete删除数据是记录在日志中的,可以通过其将数据恢复,而trancate则是将整个表截断,其操作是不记录在日志里的。这就像操作系统里面delete文件还可以在回收桶里找到,而按shift+delete就是彻底地删除文件。相对来说,trancate速度快些。
表在录入数据以后会占用一定的系统磁盘空间,用delete命令并不是将数据的占有空间收回,而是保留一段时间,就是说可以利用日志恢复数据;而trancate则是将表所有的空间收回到系统中,这是两者最根本的区别。
DateAdd,DateDiff,DateName函数
dateadd (datepart,amount,initialdate)函数
返回一个对指定日期加上日期部分的完整日期数值,类型为datetime。
例如:print dateadd(m,3,getdate()),当前系统时间加上3(月)
datediff(datepart,startdate,enddate)函数
根据datepart,返回一个enddate减去startdate的值(相减的可能是year,month,day。。。)
datename(datepart,date)函数
返回日期指定日期部分的数值
例如:select datename(m,getdate()),当前日期的月份
附表:
datepart参数格式
日期部分 缩写
year yy,yyyy
quarter qq,q
month mm,m
day dd,d
dayofyear dy,y
week wk,ww
weekday dw
hour hh
minute mi,n
second ss,s
Millisecond ms
创建存储过程
use AdventureWorks
GO
create proc getEmployeeName @EmployeeName vachar(50)='%'
as
begin
select * from Employees
where EmployeeName like @EmployeeName
end
运行存储过程
use AdventureWorks
GO
exec getEmployeeName 'xlang%'
GO