网络编程
位置:首页>> 网络编程>> 数据库>> 各种SQL语句速查手册(4)

各种SQL语句速查手册(4)

作者:仰天一笑整理 来源:仰天一笑的blog 发布时间:2007-09-27 19:31:00 

标签:sql,语句

补充:

小记存储过程中经常用到的本周,本月,本年函数


Dateadd(wk,datediff(wk,0,getdate()),-1) 
Dateadd(wk,datediff(wk,0,getdate()),6) 
Dateadd(mm,datediff(mm,0,getdate()),0) 
Dateadd(ms,-3,dateadd(mm,datediff(m,0,getdate())+1,0)) 
Dateadd(yy,datediff(yy,0,getdate()),0) 
Dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) 



上面的SQL代码只是一个时间段


Dateadd(wk,datediff(wk,0,getdate()),-1) 
Dateadd(wk,datediff(wk,0,getdate()),6) 


就是表示本周时间段.
下面的SQL的条件部分,就是查询时间段在本周范围内的:


Where Time BETWEEN Dateadd(wk,datediff(wk,0,getdate()),-1) AND Dateadd(wk,datediff(wk,0,getdate()),6) 



而在存储过程中


select @begintime = Dateadd(wk,datediff(wk,0,getdate()),-1) 
select @endtime = Dateadd(wk,datediff(wk,0,getdate()),6) 



一段删除某个数据库下所有数据的好脚本
在SQL SERVER 2000/2005中,有时要删除某个数据库下的所有数据,如果数据库下很多
表,也挺麻烦的,于是可以用一段SQL来实现

Declare @t varchar (1024) 
Declare tbl_cur cursor for 
select TABLE_NAME from INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ’BASE TABLE’ 
OPEN tbl_cur 
FETCH NEXT from tbl_cur INTO @t 
WHILE @@FETCH_STATUS = 0 
BEGIN 
EXEC (’TRUNCATE TABLE ’+ @t) 
FETCH NEXT from tbl_cur INTO @t 
END 
CLOSE tbl_cur 
DEALLOCATE tbl_Cur 


定期删除备份的SQL数据库的脚本
比如某个数据库下对SQL SERVER的数据库进行了每天的备份,现在要保留7天以内的,其他的删除掉,用ASP可以实现了,但要用到filesystemobject,不大爽,首先写一个js文件clearDatabaseBackup,内容如下:


function deleteBackupFile(beforedays) { 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var dir = fso.GetFolder("D:\\数据库备份"); //改成你的数据库备份目录 
for (var fc = new Enumerator(dir.SubFolders); !fc.atEnd(); fc.moveNext()) { 
//假设数据文件的备份文件都是以abc_log开头的,比如abc_log_xxxx 
if (fc.item().name.substr(0,9) == "abc_log") { 
for (var logfiles = new Enumerator(fc.item().Files); !logfiles.atEnd(); logfiles.moveNext()) { 
var fileName = logfiles.item().name; 
var year = "20" + fileName.substr(19, 2); 
var month = fileName.substr(21, 2); 
var day = fileName.substr(23, 2); 
var days = Math.round(((new Date()).getTime() - Date.UTC(year, month - 1, day)) / 1000 / 60 / 60 / 24); 
if (days >= beforedays) logfiles.item().Delete(); 




//保存一周内的数据库备份文件 
deleteBackupFile(7); 

然后写一个BAT文件,加入到任务计划 cscript clearDatabaseBackup.js


添加主键另种方式

ALTER TABLE [dbo].[blog_info] WITH NOCHECK ADD 
CONSTRAINT [PK_blog_info] PRIMARY KEY CLUSTERED 

[UserName] 
) ON [PRIMARY] 
GO 



0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com