segunda-feira, 11 de maio de 2009

Dicas, comandos e erros de MS-SQL

Error 15023 SQL Server - Usuário ou regra já existente
sp_change_users_login 'auto_fix', '[LOGIN]'

------------------------------------------------------------------------------------

Limpar Log SQL
dump tran dbname with truncate_only

select 'dump tran ' + name + ' with truncate_only' from sysdatabases

Defrag Banco
select 'DBCC SHRINKdatabase (' + rtrim(name) + ')' from sysdatabases


print name ';'
select 'dump tran ' + name + ' with truncate_only;'
from sysdatabases order by name
print 'go'


select 'exec sp_helpdb ' + name + ';'
from master..sysdatabases
where dbid > 6 or name = 'master'

select 'DBCC SHRINKDATABASE (' + rtrim(name) + ');'
from sysdatabases order by name

select 'USE ' + NAME + '; DBCC SHRINKFILE (' + rtrim(name) + '_LOG,1);'
from sysdatabases
where dbid > 6 or name = 'tempdb' order by name

------------------------------------------------------------------------------------

Permitir trace no SQL

grant ALTER TRACE to [LOGIN]

------------------------------------------------------------------------------------
-- Este script permite localizar as maiores tabelas de uma base

Select object_name(id),rowcnt,dpages*8 as [tamanho KB] from sysindexes
where indid in (1,0) and objectproperty(id,'isusertable')=1
order by rowcnt desc

------------------------------------------------------------------------------------

restore de BANCO diferencial
voltar backup com a opcao norecover e votar com o comando abaixo o diferencial.
RESTORE DATABASE [BANCO] FROM DISK = N'[CAMINHO DO BACKUP DIFERENCIAL' WITH FILE = 1

------------------------------------------------------------------------------------

Para retirar uma base do ar (OFF LINE), conecte-se no banco MASTER e digite os seguintes comandos:


Code Snippet

-- Para retirar uma base específica

ALTER DATABASE [Banco] SET OFFLINE WITH ROLLBACK IMMEDIATE

-- Para voltar uma base específica

ALTER DATABASE [Banco] SET ONLINE

Nenhum comentário: