Total de visualizações de página

segunda-feira, 28 de dezembro de 2015

Truncar / Diminuir tamanho do LOG do SQL Server

USE master
 GO

Situação das bases de dados aonde é possível visualizar todos os bancos de dados e informações relativas à versão (nível de compatibilidade) e tipo de recovery model.

 SELECT
                   database_id                         AS  [ID]
                ,name          AS  [Banco]
,compatibility_level             AS  [Versao]
                ,user_access_desc                AS  Usuario_Mult
                ,recovery_model_desc         AS  [Model]
FROM sys.databases
GO


colocar o banco em modo simples, Com o nome do banco em mãos, executamos o alter database.

ALTER DATABASE <BANCO> SET RECOVERY SIMPLE
GO


Saber o tamanho do MDF e LDF pois o comando de baixo permite pegar o nome físico da base

USE <BANCO>
GO

sp_helpfile
GO

O comando abaixo é o SHRINKFILE Reduz o tamanho dos dados especificados ou do arquivo de log do banco de dados atual ou esvazia um arquivo movendo os dados do arquivo especificado para outros arquivos no mesmo grupo de arquivos, o que permite que o arquivo seja removido do banco de dados. Você pode reduzir um arquivo a um tamanho menor que o tamanho especificado no momento de sua criação. Isso redefine o tamanho mínimo de arquivo para o valor novo.

DBCC SHRINKFILE (<BANCO> ,1024)
GO

quinta-feira, 10 de dezembro de 2015

Modificando Data e Hora SQL Server 2008 R2

Olá essa parte eu chamo de dicas uteis do dia a dia, pois geralmente temos que alterar algum campo aonde se tem a data, muitas vezes ele está assim'20160706'  e temos que apresentar dessa forma por exemplo '06/07/2016'. 
Para isso vou apresentar algumas formas que se pode fazer com o CONVERT, então lá!!!  


No select abaixo podemos analisar algumas formas de exibir datas no SQL Server,
SELECT
               CONVERT(VARCHAR(10),GETDATE(),101)  AS  '101',
               CONVERT(VARCHAR(10),GETDATE(),102)  AS  '102',
               CONVERT(VARCHAR(10),GETDATE(),103)  AS  '103',
               CONVERT(VARCHAR(10),GETDATE(),104)  AS  '104',
               CONVERT(VARCHAR(10),GETDATE(),105)  AS  '105',
               CONVERT(VARCHAR(10),GETDATE(),106)  AS  '106',
               CONVERT(VARCHAR(12),GETDATE(),107)  AS  '107',
               CONVERT(VARCHAR(12),GETDATE(),108)  AS  '108',
               CONVERT(VARCHAR(12),GETDATE(),109)  AS  '109',
               CONVERT(VARCHAR(10),GETDATE(),110)  AS  '110',
               CONVERT(VARCHAR(10),GETDATE(),111)  AS  '111',
               CONVERT(VARCHAR(10),GETDATE(),112)  AS  '112',
               CONVERT(VARCHAR(12),GETDATE(),113)  AS  '113',
               CONVERT(VARCHAR(12),GETDATE(),114)  AS  '114',
               CONVERT(VARCHAR(10),GETDATE(),120)  AS  '120',
               CONVERT(VARCHAR(10),GETDATE(),121)  AS  '121'


Abaixo podemos ver a data corrente e já separar por dia, mês, Ano, Hora, Minuto e Segundo.
     
DECLARE  @DIA    SMALLINT
               ,@MES   SMALLINT
               ,@ANO   SMALLINT
              ,@HR     SMALLINT
              ,@MIN    SMALLINT
              ,@SEG   SMALLINT

SELECT    @DIA      = DATEPART(DAY,GETDATE())
               ,@MES    = DATEPART(MONTH,GETDATE())
               ,@ANO    = DATEPART(YEAR,GETDATE())
               ,@HR      = DATEPART(HOUR,GETDATE())
               ,@MIN     = DATEPART(MINUTE,GETDATE())
               ,@SEG    = DATEPART(SECOND,GETDATE())

SELECT  GETDATE() AS 'GETDATE( ) ORIGINAL'
             ,@DIA    AS  'DIA'
             ,@MES   AS  'MES'
       ,@ANO   AS  'ANO'
             ,@HR     AS  'HORA'
             ,@MIN    AS  'MINUTO'
             ,@SEG    AS  'SEGUNDO'

Obs: Sei que parece dicas fracas mas as vezes temos que exibir um relatório ou mostrar apenas a hora ou dia em certas querys, e sempre da aquele branco na mente de como fazer essas sintax... pois bem... é sempre bom ter um bloco de notas com essas dicas.

Até a próxima pessoal.