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
Dicas em SQL Server
Voltado a ajudar iniciantes na área de banco de dados SQL Server
Total de visualizações de página
segunda-feira, 28 de dezembro de 2015
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.
sexta-feira, 25 de setembro de 2015
Usando dbcc checkident para reiniciar um campo identity
Em muitas empresas no dia de hoje, usamos tabelas com campos auto incrementais ( IDENTITY) , com isso muitas vezes precisamos por algum motivo ou outros, reiniciar a contagem já que ao deletar um registo o campo continuar a contar mesmo que ele não esteja mais na tabela. No exemplo abaixo vamos ver na pratica como reiniciar essa contagem.
Vamos criar uma tabela aonde podemos analisar essas situações e aprender a usar de uma forma facil e pratica o DBCC CHECKIDENT.
-- Criando uma tabela Pessoa:
-- Criando uma tabela Pessoa:
CREATE TABLE Pessoa (
id INT IDENTITY (1,1)
, Nome VARCHAR (10)
, Sobrenome VARCHAR (10))
id INT IDENTITY (1,1)
, Nome VARCHAR (10)
, Sobrenome VARCHAR (10))
-- Vamos colocar alguns valores dentro dessa tabela
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Joao','Oliveira')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Maria','José')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Antonio','Gullar')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Isabel','Silva')
-- Vamos ver como ficou dando um select
SELECT
id , Nome
,Sobrenome
FROM Pessoa
id , Nome
,Sobrenome
FROM Pessoa
Notamos que criamos 4 registros e um deles acrescentou números crescentes, agora vamos deletar esses registros e em seguida vamos colocar mais alguns outros.
DELETE FROM Pessoa
-- Agora vamos conferir se apagou mesmo.
SELECT
id , Nome
,Sobrenome
FROM Pessoa
-- Pois bem, vamos agora colocar mais registros e em seguida ver como ficou o id
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('José','falcane')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Rafael','Santos')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Joana','Pinto')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Pablo','Carvalho')
-- Podemos
SELECT
id , Nome
,Sobrenome
FROM Pessoa
,Sobrenome
FROM Pessoa
Notamos agora que mesmo deletando todos os registro, o campo que está com auto-incremental ainda continua contando os registros em ordem crescentes.
Algumas vezes temos que ZERAR essas tabelas... depois de bater muito a cabeça deletando a tabela para pegar o inicio da numeração, achei um comando que faz essa função, com o comando a baixo podemos iniciar o campo que está com auto-incremental podendo até iniciar pelo numero que quisermos.
-- Usando o DBCC CHECKIDENT
DBCC CHECKIDENT('[tabela]', RESEED, 0)
DBCC CHECKIDENT('[tabela]', RESEED, 0)
Depois desse comando pode voltar a inserir alguns registros e ver o resultado.
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('José','falcane')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Rafael','Santos')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Joana','Pinto')
INSERT INTO Pessoa (Nome,Sobrenome) VALUES ('Pablo','Carvalho')
-- Vamos ver como ficou agora!!
SELECT
id , Nome
,Sobrenome
FROM Pessoa
Espero ter ajudado.
Assinar:
Postagens (Atom)