31 março, 2014

MS SQL - listar todas tabelas

--Lista todas as tabelas dentro do banco conectado.

SELECT name, crdate
FROM sysobjects
WHERE xtype='U' order by name;

24 março, 2014

Microsoft SQL Server - Recriar LDF - erro 1813

Esse é um compilado de vários sites que peguei, as fontes originais não tenho mais. Desculpa aos que me ajudaram.

DBCC REBUILD_LOG

MS SQL - Recriar LDF - erro 1813
1 - Criar um banco novo com o mesmo nome do antigo. Prestar atenção no nome físico dos arquivos, devem ser iguais aos antigos.


2 - Parar o serviço do MS SQL.


3 - Substituir o arquivo mdf novo pelo antigo.


4 - Eliminar o novo arquivo ldf.


5 - Iniciar o serviço do MS SQL.


O banco irá subir em modo suspeito, conectar na base master como administrador (sa) e executar o scrip abaixo, substituir o nome do banco nos locais em destaque obecendo as aspas.


EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO
BEGIN TRAN
UPDATE master..sysdatabases SET status = status | 32768
WHERE name = 'Database'
IF (@@rowcount = 1)
BEGIN
    COMMIT TRAN
    RAISERROR ('You are in emergency sql mode', 0,1) WITH LOG
END
ELSE
BEGIN
    ROLLBACK
    RAISERROR ('Unable to set sql into emergency mode',0,1) WITH LOG
END
GO
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO


6 - Reiniciar o serviço do MS SQL.


7 - Executar o comando abaixo na base master como administrador (sa), substituir o nome do banco e o caminho onde deve ficar o log.


--restart sql server at this point
DBCC REBUILD_LOG ('Database', 'c:\sqldata\database.ldf')
--perform DBCC CHECKDB at this point.  If problems exist you may have to DTS good data out and rebuild database
--can also try REPAIR clauses to checkdb
ALTER DATABASE database SET MULTI_USER

17 março, 2014

Limpar cache do Microsoft SQL Server

Caso precise limpar o cache do banco para testar alguma consulta execute

-- Limpa cache de procedures
DBCC FREEPROCCACHE

-- Limpa buffers (comandos add-hoc)
DBCC DROPCLEANBUFFERS

10 março, 2014

Verificar versão do banco de dados Microsoft SQL Server

Para verificar a versão do banco de dados MS SQL executar a consulta abaixo:

select @@version;

03 março, 2014

Google Apps - Trocar senha proximo login


Abaixo segue um script para ser usado no Google Apps para forçar os usuários a trocarem a senha periodicamente. O link original está em fonte, o código abaixo sofreu algumas modificações para ficar mais adequado a minha necessidade.


fonte: https://sites.google.com/site/appsscripttutorial/home/force-google-apps-users-to-change-password-periodically


/*
Função seta o campo trocar senha no proximo login como verdadeiro
Seta uma senha padrão para todos os usuarios
Dispara email para quem executa o scrip com um relatorio de execução
Possibilidade de schedular para que a troca de senha ocorra periodicamente

*/

function invalidatePass() {

//Create logs
Logger.log('Incio de execução');
Logger.log('Lista de usuários que trocarão senha no proximo login');
Logger.log('=====================================================================');

var msgEmailAlterado = 'Lista emails que terão a senha trocada no próximo acesso' + '\n';
var mailSent = false;

 
try {
//pegar todos usuarios do dominio
var users = UserManager.getAllUsers();
 
 
//iterate for each user
for (var i = 0; i < users.length; i++){
//set the user to change password on next login
  //var userVerifica = users[i]
  //if (users[i].getIsAdmin()==false) {
    if (!users[i].getIsAdmin()) {
users[i].setPassword("init@123");
users[i].setChangePasswordAtNextLogin(true);
  Logger.log(users[i].getEmail())
  var msgEmailAlterado = msgEmailAlterado + '\n' + users[i].getEmail();
  }
//Put the email of the user in log

}
}
//Catch if any error occurs
catch(erro){
//Log the error
Logger.log('=====================================================================');
Logger.log('Ocorreu um erro: '+erro.message);
//Send an email to yourself with logs
GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), 'Usuários que ocorreu erro na execução', Logger.getLog());
mailSent = true;
}

if(!mailSent){
//if execution successful
 var tituloEmail = 'Usuários que foram modificados com sucesso'
 var destinoEmail = Session.getEffectiveUser().getEmail()
 //var corpoEmail =
Logger.log('=====================================================================');
Logger.log('Fim da execução. Concluído com sucesso!!!');
//Send an email to yourself with logs
GmailApp.sendEmail(destinoEmail, tituloEmail, msgEmailAlterado);
}

}