數據庫日常維護常用的腳本概述及部分測試_Mssql數據庫教程
推薦:sql2008安裝后服務器改名造成名稱不一致解決方法查看服務器名是否一致如果不一致,則以serverproperty(servername)為準,接下來介紹詳細解決方法,感興趣的朋友可以參考下,希望可以幫助到你
有些數據庫語句可能平時用得不多,所以使用的時候總是難免上網查詢,略嫌麻煩,今日在CSDN論壇看到有貼收錄這些語句,就順手牽羊copy了一份,本想copy了就結束了,但和部分朋友一樣,真正用到它們的時候有時會發現難免會出錯,于是,擇日不如撞日,就在今天花點時間在SQL SERVER 2008中運行試試。之前并沒怎么注意SQL2008的語法與之前版本的不同,因為常用的select等語句都一樣,一直以為2008應該與2005的版本幾乎無差。不料這一試,果然試出了問題,這才發現,以前從書本上見過的backup語句和dump語句已經在2008里面消失了……
廢話不多說,把收錄的語句及備注貼上來,便于以后查詢使用~~
1、 數據庫備份操作:
復制代碼 代碼如下:www.wf0088.com
declare @sql varchar(8000)
set @sql='backup database smallerp to disk=''d:\'+RTRIM(CONVERT(varchar,getdate(),112))+'.bak'''
exec(@sql);
(備注:引號不可缺少任意一個,否則會報錯)
2、 刪除5天前的備份文件:
復制代碼 代碼如下:www.wf0088.com
declare @sql varchar(8000)
set @sql='del d:\'+RTRIM(CONVERT(varchar,getdate()-5,112))+'.bak'''
exec master..xp_cmdshell @sql;
(備注:xp_cndshell默認該組件會被阻止,需要先啟用它才可正常操作:使用如下語句將其啟用EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;)
3、 收縮數據庫語句:
復制代碼 代碼如下:www.wf0088.com
dump transaction smallerp with no_log;
(備注:這句話中會提示transaction附近有語法錯誤,原來在SQL2008中已經不再使用此法來收縮數據庫了。而使用:alter,使用方法如下:
復制代碼 代碼如下:www.wf0088.com
alter database smallerp set recovery simple
dbcc shrinkdatabase(smallerp,0);)
backup log smallerp with no_log;
(備注:這句話執行的時候會報錯:此語句不支持一個或多個選項(no_log),原因也是因為SQL2008已經不再支持這種寫法了。)
4、 查看數據庫里活動用戶和進程信息:
復制代碼 代碼如下:www.wf0088.com
sp_who 'active';
(備注:如果只是這么寫的話會提示sp_who附近有語法錯誤,但執行的時候可以查到數據,如果在前面加一個exec,則不再提示錯誤。且1—50的進程號
為SQL SERVER系統內部用的,只有大于50的進程號才是用戶的連接進程。spid是進程號,dbid是數據庫編號,objid是數據對象編號)
5、 查看數據庫里用戶和進程信息:
復制代碼 代碼如下:www.wf0088.com
Exec sp_who;
6、 查看數據庫里的鎖情況:
復制代碼 代碼如下:www.wf0088.com
Exec sp_lock;
7、 分析SQL SERVER里sql語句的方法:
復制代碼 代碼如下:www.wf0088.com
set statistics time {on | off}(寫語句的時候只需要寫明是on或者off即可)
set statistics io {on | off}
8、 文本方式顯示查詢執行計劃:
復制代碼 代碼如下:www.wf0088.com
9、 差異備份:
復制代碼 代碼如下:www.wf0088.com
declare @str varchar(100)
set @str='D:\'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'
BACKUP DATABASE smallerp TO DISK=@str
WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,
NAME=N'Demo差異備份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO
10、 刪除過期的備份文件,并設定每天兩次:
復制代碼 代碼如下:www.wf0088.com
declare @str varchar(100),@dir varchar(100),@fileName varchar(30)
set @dir='del D:\ '
set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),' ',''),':',''),8)
set @str=@dir+'fullbak'+@filename+'*.bak'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'diffbak'+@filename+'*.diff'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'logbak'+@filename+'*.trn'
exec xp_cmdshell @str
先這些吧,貌似一般不用又相對比較常用~
分享:sql2008評估期已過的解決辦法及序列號sql2008評估期已過的解決辦法及序列號,有關如何升級您的測試版軟件的信息
相關Mssql數據庫教程:
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-數據庫日常維護常用的腳本概述及部分測試。