EXEC
sp_MSforeachdb 'EXEC [?]..sp_changedbowner ''sa'' '
Freitag, 31. Juli 2015
Dienstag, 7. Juli 2015
SQL Server: shrink all databases
EXEC
sp_msForEachDB 'PRINT ''
USE
?
GO
ALTER
DATABASE ? SET RECOVERY SIMPLE
GO
DBCC
SHRINKFILE(''''?'''',1)
GO
ALTER
DATABASE ? SET RECOVERY FULL
GO''
'
Labels:
shrink,
shrinkfile,
SQL Server,
T-SQL,
Transaction Log,
Transaktionsprotokoll
SQL Server: shrink all transaction logs retrieving data from sysfiles
CREATE
TABLE #LogFileResults (DatabaseName VARCHAR(150), LogFileName VARCHAR(150) )
DECLARE
DataBaseList CURSOR FOR
SELECT
name FROM SYS.sysdatabases
WHERE
NAME NOT IN ('master','tempdb','model','msdb','distribution')
DECLARE
@dbs VARCHAR(128)
DECLARE
@cmd VARCHAR(MAX)
OPEN
DataBaseList FETCH
NEXT
FROM DataBaseList INTO
@dbs
WHILE
@@FETCH_STATUS <>
-1
BEGIN
SET
@cmd = 'USE [' + @dbs + '] INSERT INTO #LogFileResults(DatabaseName, LogFileName)
SELECT '''
+
@dbs + ''', Name FROM
sysfiles WHERE FileID=2'
EXEC(@cmd)
FETCH
NEXT FROM
DataBaseList INTO @dbs END
DEALLOCATE
DataBaseList
DECLARE
TransactionLogList CURSOR FOR
SELECT
DatabaseName, LogFileName FROM #LogFileResults
DECLARE
@LogFile VARCHAR(128)
OPEN
TransactionLogList FETCH
NEXT
FROM TransactionLogList INTO @dbs, @LogFile
WHILE
@@FETCH_STATUS <>
-1
BEGIN
SELECT
@cmd = 'USE [' + @dbs + '] '
+
'ALTER DATABASE [' +
@dbs + '] SET RECOVERY
SIMPLE WITH NO_WAIT '
+
'DBCC SHRINKFILE(N''' +
@LogFile + ''', 1) '
+
'ALTER DATABASE [' +
@dbs + '] SET RECOVERY
FULL WITH NO_WAIT'
Print
(@cmd)
FETCH
NEXT FROM
TransactionLogList INTO @dbs, @LogFile END
DEALLOCATE TransactionLogList
DROP TABLE #LogFileResults
Labels:
shrink,
shrinkfile,
SQL Server,
T-SQL,
Transaction Log,
Transaktionsprotokoll
Abonnieren
Posts (Atom)