Querys Úteis SQL SERVER

Estou colocando alguns scripts que acho seria interesante todos terem.
 

/* GERA DICIONÁRIO DE DADOS */

SET NOCOUNT ON
DECLARE @Id_Tabela int, @Nome_Tabela varchar(50)
PRINT ‘BANCO DE DADOS: ‘ + UPPER(db_name())
PRINT ”
DECLARE tabelas CURSOR FOR SELECT Name, ID FROM sysobjects WHERE xtype = ‘U’ AND Name <> ‘dtProperties’
ORDER BY Name
OPEN tabelas
FETCH NEXT FROM tabelas INTO @Nome_Tabela, @Id_Tabela
WHILE @@FETCH_STATUS = 0
BEGIN
 IF(UPPER(@nome_tabela)<>’SYSPROPERTIES’)
 BEGIN
     PRINT ‘TABELA: ‘ + UPPER(@nome_tabela)
     select nome_campo = LEFT(RTRIM(LTRIM(sc.name)),40),
     tipo_campo = LEFT(RTRIM(LTRIM(st.name)),20), tamanho_campo = sc.length, descricao_campo = ISNULL(sp.name,”)
     FROM syscolumns sc, systypes st, sysobjects sp WHERE sc.id = @Id_Tabela AND sc.xtype = st.xtype
     and sc.colid *= sp.id and sp.id = @Id_Tabela
     ORDER BY sc.colid
     PRINT ”
     FETCH NEXT FROM tabelas INTO @Nome_Tabela, @Id_Tabela
 END
END
CLOSE tabelas
DEALLOCATE tabelas
SET NOCOUNT OFF
 

/* VERIFICA PROCESSOS BLOQUEADOS NO SQL SERVER */

 
 select spid, blocked, hostname=left(hostname,20), program_name=left(program_name,20),WaitTime_Seg = convert(int,(waittime/1000)) ,open_tran, status from master.dbo.sysprocesses where blocked = 0 and SPID in (Select blocked from master.dbo.SYSPROCESSES where blocked >0 ) order by spid 
 

/* Script para Listar o tamanho dos objetos do TIPO Table no banco*/
/* em SQL Server 7 e 2000 e 2007*/
/* Desenvolvido por: Rodrigo Fernandes*/

DECLARE @obj_name  sysname
DECLARE csr_obj  CURSOR FOR
SELECT CONVERT(varchar(517),name) FROM sysobjects
WHERE xtype = ‘U’
ORDER BY xtype
OPEN csr_obj
FETCH NEXT FROM csr_obj INTO @obj_name
WHILE @@FETCH_STATUS = 0
     BEGIN
 
 EXEC sp_spaceused @objname = @obj_name
 FETCH NEXT FROM csr_obj INTO @obj_name
     END
CLOSE csr_obj
DEALLOCATE csr_obj

/* Script para matar os processos de determinado usuário */

 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_KillbyUser]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
drop procedure [dbo].[sp_KillbyUser]
GO
CREATE PROCEDURE sp_KillbyUser (@loginame VARCHAR(256))
AS
IF (IS_SRVROLEMEMBER(‘sysadmin’) = 0) OR
(IS_SRVROLEMEMBER(‘processadmin’) = 0)
 BEGIN
    RAISERROR(15247,-1,-1)
    RETURN(1)
 END
IF NOT EXISTS(SELECT name FROM master..sysxlogins WHERE name = @loginame)
 BEGIN
    PRINT ‘THE USER DOES NOT EXIST !’
    RETURN(1)
 END
ELSE
 BEGIN
    DECLARE @cmd VARCHAR(256)
    DECLARE @pid SMALLINT
    DECLARE csr_procs_login CURSOR FOR
    SELECT spid FROM master..sysprocesses
    WHERE loginame = @loginame
    OPEN csr_procs_login
    FETCH NEXT FROM csr_procs_login INTO @pid
    WHILE @@FETCH_STATUS = 0
  BEGIN
     SET @cmd  = ‘KILL ‘ + CAST(@pid AS VARCHAR(6))
     EXEC (@cmd)
        
     PRINT @cmd
    
     FETCH NEXT FROM csr_procs_login INTO @pid
  
  END
  CLOSE csr_procs_login
  DEALLOCATE csr_procs_login
  RETURN(0)
 END
 

/* Script para listar os Fill Factor das tabelas */

 
SELECT DB_NAME() AS DBNAME, a.name AS IndexName,
 a.OrigFillFactor AS Fill_Factor, b.table_name
FROM sysindexes AS a
INNER JOIN information_schema.tables AS b
 ON (OBJECT_ID(b.table_name) = a.id)
 AND b.table_type = ‘BASE TABLE’
ORDER BY a.OrigFillFactor DESC
 
Aproveitando para quem não tem muito conhecimento de FILL-FACTOR segue um link muito bom.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s