Postagens

SQL SERVER - Procurando objetos no servidor

As querys abaixo são muito uteis para encontrar um determinado objeto e/ou alguma informação dentro de uma procedure. --Utilizada para procurar o job do servidor que executa a procedure especifica. SELECT J.NAME FROM MSDB.DBO.SYSJOBS AS J   WHERE EXISTS    ( SELECT 1 FROM MSDB.DBO.SYSJOBSTEPS AS S WHERE  S.JOB_ID = J.JOB_ID --Podemos colocar neste filtro o nome (ou parte) da procedure AND S.COMMAND LIKE ' %NOME_DA_PROCEDURE% '   ); --Procura a procedure no banco de dados SELECT B.NAME, A.LAST_EXECUTION_TIME FROM SYS.DM_EXEC_PROCEDURE_STATS A INNER JOIN SYS.OBJECTS B ON A. OBJECT_ID = B. OBJECT_ID  --Filtro com o nome (ou parte) da procedure a ser procurada no banco de dados WHERE  DB_NAME (A.DATABASE_ID) LIKE ' %TESTE% ' --Procura procedure que utiliza a tabela. SELECT  DISTINCT SO.NAME FROM SYSCOMMENTS SC INNER JOIN SYSOBJECTS SO ON SC.ID=SO.ID --Filtro com o nome (ou parte) da tabela a ser procurad
SQL SERVER - Executando comandos do MS-DOS --É possível executar um comando do MS-DOS no Sql Server. --Este tipo de procedimento é muito utilizado em Jobs. --O exemplo abaixo é utilizado para deletar um arquivo txt. EXEC XP_CMDSHELL 'del c:\Arquivos\TesteDel.txt' --, no_output --O parâmetro ", no_output" esta comentado pois não é necessário. --O mesmo exibe o resultado final. --Caso o arquivo não seja deletado um erro pode ser visto descomentando o comando de output. --Qualquer comando do MS-Dos pode ser utilizado ao invés do 'del'. Versão do Sql Server: 2008 R2 As querys devem funcionar nas versões 2000 e 2005 do Sql Server. Deixe sua duvida e/ou comentário abaixo.

SQL SERVER - Abrindo arquivo Txt/Csv com OpenRowSet

Abrindo arquivos txt e csv via openrowset A query abaixo pode ser utilizada para txt e csv. A unica coisa que tem que ser modificada é o nome do arquivo SELECT * FROM OPENROWSET ( 'MSDASQL' , 'Driver={Microsoft Text Driver (*.txt; *.csv)}; DEFAULTDIR=Caminho_Do_Arquivo;Extensions=CSV;' , 'SELECT * FROM [nome_do_arquivo_com_a_extensão]' ) Nome do Arquivo: Atividades.txt Local do Arquivo: C:\Temp SELECT * FROM OPENROWSET ( 'MSDASQL' , 'Driver={Microsoft Text Driver (*.txt; *.csv)}; DEFAULTDIR=C:\Temp;Extensions=CSV;' , 'SELECT * FROM [atividades.csv]' ) Versão do Sql Server: 2008 R2 As querys devem funcionar nas versões 2000 e 2005 do Sql Server. Deixe sua duvida e/ou comentário abaixo.

SQL SERVER - Verificando jobs com falha

/* Esta query é muito util para quem precisa realizar algum tipo de automatização para verificar os jobs com falha. */ USE MSDB SELECT --Pega a ultima vez que job foi executado com falha MAX ( CONVERT ( DATETIME , RTRIM (run_date)) + (run_time * 9 + run_time % 10000 * 6 + run_time % 100 * 10) / 216e4) AS DATA_JOB, --Nome do job STEP_NAME --Id do job ,JOB_ID --Envia o resultado para uma tabela  temporária INTO #TB_ID_JOB                           FROM msdb..sysjobhistory A WHERE STEP_NAME <> '(Job outcome)' --Rotina com falha AND RUN_STATUS = 0 GROUP BY STEP_NAME,JOB_ID  ORDER BY STEP_NAME --Verifcando resultados SELECT * FROM #TB_ID_JOB --Deleta a tabela temporaria DROP TABLE #TB_ID_JOB Versão do Sql Server: 2008 R2 As querys devem funcionar nas versões 2000 e 2005 do Sql Server. Deixe sua duvida e/ou comentário abaixo.

SQL SERVER - Manuseando tabelas

--ADICIONANDO UMA COLUNA ALTER TABLE table_name ADD DIRETORIA VARCHAR (5) --ADICIONANDO UMA COLUNA AUTONUMERAÇÃO ALTER TABLE #table_name ADD [ID_REG] [int] IDENTITY (1, 1) NOT NULL --RENOMEANDO UMA TABELA EXEC sp_rename TABLE_NAME, --Nome atual da tabela TABLE_NAME_NEW --Novo nome da tabela --MODIFICANDO O TIPO DA COLUNA ALTER TABLE table_name ALTER COLUMN FIELD_NAME VARCHAR (150) NULL --EXCLUINDO UMA COLUNA ALTER TABLE supplier DROP COLUMN supplier_name; --CRIANDO INDEX NUMA TABELA  TEMPORÁRIA CREATE INDEX IDX_CUSTOMER_LAST_NAME ON #TB_TABLE(NUM_OS) --INSERIR RESULTADO DA PROC NUMA TEMP --CRIE A TABELA TEMPORARIA COM TODAS AS COLUNAS QUE A PROC RETORNA INSERT INTO #TB_TEMP EXEC PROC PARÂMETROS Versão do Sql Server: 2008 R2 As querys devem funcionar nas versões 2000 e 2005 do Sql Server. Deixe sua duvida e/ou comentário abaixo.

SQL SERVER - Verificando o tamanho das tabelas

/* A query abaixo pode ser usada para verificar o tamanho das tabelas. Muito util para quem tem espaço restrito no servidor ou esta tendo problemas de lentidão. Este query só verifica as tabelas que um unio banco de dados por vez. */ USE DATA_BASE --DATA_BASE = Banco de dados a ser verificado create table #temp             ([name] varchar (1000),             [rows] int ,             [reserved] varchar (1000),             [data] varchar (1000),             [index_size] varchar (1000),             [unsed] varchar (1000)) insert into #temp EXEC sp_MSforeachTable @command1="print '>>>Tabela: ?' ", @command2="sp_spaceused '?' " select * from #temp order by [rows] drop table #temp Logo logo postarei uma query melhorada. Versão do Sql Server: 2008 R2 Deixe seu comentário abaixo.