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

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

补充:

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


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 



标签:sql,语句
0
投稿

猜你喜欢

  • 如何限制上传文件的大小?

    2010-06-09 18:47:00
  • HTTP中header头部信息详解

    2023-06-11 23:33:17
  • 教你一招完美解决vscode安装go插件失败问题

    2024-05-09 09:47:20
  • Asp中如何设计跨越域的Cookie

    2008-10-24 09:46:00
  • 仿DW的图形菜单 DIV+CSS

    2007-08-14 10:07:00
  • Linux系统下mysqlcheck修复数据库命令(详解)

    2024-01-24 14:42:10
  • python调用matplotlib模块绘制柱状图

    2024-01-02 04:35:16
  • numpy.std() 计算矩阵标准差的方法

    2023-06-04 19:50:34
  • Python pyautogui模块实现鼠标键盘自动化方法详解

    2023-07-25 09:16:42
  • 通过实例解析Python RPC实现原理及方法

    2022-06-19 00:50:38
  • python 计算数组中每个数字出现多少次--“Bucket”桶的思想

    2023-06-28 19:37:55
  • li隔行换色改进版

    2024-04-29 13:40:23
  • Python中的tkinter库简单案例详解

    2021-01-20 14:25:16
  • 基于Python实现通过微信搜索功能查看谁把你删除了

    2022-07-10 00:19:37
  • 使用sp_xml_preparedocument处理XML文档的方法

    2011-09-30 11:56:15
  • oracle远程连接服务器数据库图文教程

    2023-07-12 22:22:37
  • 淘宝CSS框架研究(1):Reset CSS(八卦篇)

    2009-03-31 12:58:00
  • python中常用的内置模块汇总

    2023-12-28 14:57:01
  • Python图像识别+KNN求解数独的实现

    2021-06-11 19:48:23
  • 模仿PHP写的ASP分页函数

    2008-04-13 06:11:00
  • asp之家 网络编程 m.aspxhome.com