幾個有用的T SQL 1

2021-09-05 23:16:06 字數 3327 閱讀 9474

清除所有表記錄,有點像reset,保留constraints與identities.

--disable constraints & triggers
exec sp_msforeachtable 'alter table ? nocheck constraint all'
exec sp_msforeachtable 'alter table ? disable trigger all'
--perform delete

operation

onall

table

for cleanup

exec sp_msforeachtable 'delete ?'
--enable constraints & triggers again
exec sp_msforeachtable 'alter table ? check constraint all'
exec sp_msforeachtable 'alter table ? enable trigger all'
--reset identity

on tables with

identity

column

exec sp_msforeachtable 'if objectproperty(object_id('

'?''), '

'tablehasidentity'

') = 1

begin dbcc checkident (''?'

',reseed,0) end'

2.    列出db中表的大小,所佔磁碟大小。

create

procedure [dbo].[getdbtablesize]

as
begin
set nocount on;
declare @cmdstr varchar(100)
--create

temporary

table

create

table #temptable

(
[table_name] varchar(50),
row_count int,
table_size varchar(50),
data_space_used varchar(50),
index_space_used varchar(50),
unused_space varchar(50)
)
--create stored procedure string
select @cmdstr = 'sp_msforeachtable '

'sp_spaceused "?"'

''

--populate tempoary table
insert into #temptable exec(@cmdstr)
--determine sorting method
select * from #temptable order

by table_name

--delete temporay table
drop

table #temptable

end

3.清除指定db的事務日誌。開發過程中我們把db的日誌搞得很大

backup log [mydatabase] with truncate_only
go
dbcc shrinkdatabase ([mydatabase], 10, truncateonly)
go

當然另乙個好主意是要備份它們:

backup
log [mydatabase] to

disk = n'c:\backups\mydatabase_log.trn'

with

noformat, noinit, name = n'mydatabase_log', skip, rewind, nounload,
stats = 10

4.列出db中表的數量:

use yourdbname
select

count(*) from information_schema.tables

where table_type = 'base table'

5.按當前時期備份database,你可以用它當做job來執行。

declare @currentday varchar(10)
set @currentday = datepart(day,getdate())
if len(@currentday) = 1
begin
set @currentday = '0' + @currentday
end
declare @currentmonth varchar(10)
set @currentmonth = datepart(month,getdate())
if len(@currentmonth) = 1
begin
set @currentmonth = '0' + @currentmonth
end
declare @currentyear varchar(10)
set @currentyear = datepart(year,getdate())
declare @filename varchar(100)
set @filename = 'd:\dbbackup\' + @currentyear
+ '_'    + @currentmonth  + '_' + @currentday  + '.bak'
backup

database yourdatabase to

disk = @filename with noformat, init,

name = n'mydatabase -full database backup', skip, norewind, nounload,  stats = 10
go

author : petter liu    

希望對您有幫助。

幾個有用的巨集

分類 c c 1.列印錯誤資訊 如果程式的執行必須要求某個巨集被定義,在檢查到巨集沒有被定義是可以使用 error,warning列印錯誤 警告 資訊,如 ifndef unix error this section will only work on unix systems endif 只有 u...

幾個有用的巨集

1.列印錯誤資訊 如果程式的執行必須要求某個巨集被定義,在檢查到巨集沒有被定義是可以使用 error,warning列印錯誤 警告 資訊,如 ifndef unix error this section will only work on unix systems endif 只有 unix 巨集被...

Xmind幾個有用的技巧

xmind是乙個很好的思維導圖工具,是學習研究總結的好幫手。xmind功能很豐富,這裡只是簡要列出幾個比較有用的技巧。選中乙個xmind元素 專業名詞叫 主題 後,一般在右下角會出現 屬性 如果你不想老是看到單調的格式,一定要善用屬性。具體細節就選中乙個xmind元素,自己試試吧!這個問題曾經讓筆者...