Mostrando postagens com marcador SQL. Mostrar todas as postagens
Mostrando postagens com marcador SQL. Mostrar todas as postagens

terça-feira, 17 de março de 2015

Identity - Campo auto incremento.

Criando uma tabela com um campo auto incremento:


create table veiculo(

id int identity(1,1) not null,

modelo varchar(50),

constraint pk_veiculo primary key clustered (id desc)

);


aqui informamos onde inicia nossa contagem e qual o valor que sera incrementado ao inserirmos uma informação.


Nesta linha "id int identity(1,1) not null," temos a informação que faz o controle do auto incremento, este trecho deve ser preenchido desta forma: "identity(inicio, incremento)".


Inserindo os dados na tabela.


insert into veiculo values('Palio');

insert into veiculo values('Prisma');

insert into veiculo values('Classic');



Podemos observar que não foi necessário incluirmos o valor do campo "id", esta campo é inserido automaticamente pois informamos isso na criação da nossa tabela.


Se realizarmos a consulta abaixo:


select * from veiculo


Teremos o seguinte resultado:



Com o resultado da consulta acima vemos que o campo "id" se inicia em 1 e vai incrementando mais 1 a cada nova inserção, a nossa consulta se inicia a partir do 3 porque o nosso índice foi criado de forma decrescente.


Como descobrir quais tabelas tem o "identity" ativo.


SELECT obj.name, obj.modify_date, c.is_identity FROM sys.columns c

join sys.objects obj on obj.object_id = c.object_id

where c.is_identity = 1

order by obj.name




sexta-feira, 13 de fevereiro de 2015

​Como saber o tamanho de uma tabela ou de um banco de dados?



​​

Usando o banco de testes AdventureWorks2012 executamos os seguintes comandos:

USE AdventureWorks2012;

EXEC sp_spaceused N'Person.Person';

Com este comando obtemos o resultado abaixo referente a tabela "Person.Person" do nosso banco de testes AdventureWorks2012.




EXEC sp_spaceused @updateusage = N'TRUE';

Com este comando obtemos o resultado abaixo referente ao nosso banco de testes AdventureWorks2012.


Fonte: MSDN


SELECT DB.NAME,( Sum(size) * 8 ) / 1024 AS Tamanho
FROM sys.databases DB
    INNER JOIN sys.master_files SM ON DB.database_id = SM.database_id
WHERE DB.NAME = 'AdventureWorks2012'
GROUP BY DB.NAME

Com esta consultas obtemos o resultado abaixo referente ao nosso banco de testes AdventureWorks2012.


quinta-feira, 12 de fevereiro de 2015

Função para transforma minutos em dias, horas e minutos.


Esta função retorna a quantidade de dias, horas e minutos a partir de uma quantidade de minutos(um valor inteiro), por exemplo se passarmos como parâmetro o valor 1500 receberemos de resultado "1d 1h 50m".

Para testarmos a função abaixo usamos a seguinte sintaxe:

SELECT [dbo].[IntToDayHourminute](1550)


Criando a função "IntToDayHourminute".

USE [meu_banco]
GO
/****** Object: UserDefinedFunction [dbo].[IntToDayHourminute] Script Date: 11/02/2015 21:00:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[IntToDayHourminute]
(
@Total int
)
RETURNS nvarchar(30)

AS
BEGIN
declare @Return nvarchar(20)
declare @Minuto int
declare @Hora int
declare @Dia int

set @Dia = case when @Total < 1440 then
0
else
(@Total / 1440)
end;

set @Total = case when @Dia = 0 then
@Total
else
@Total - (@Dia * 1440)
end;

set @Hora = case when @Total < 60 then
0
else
(@Total / 60)
end;

set @Total = case when @Hora = 0 then
@Total
else
@Total - (@hora * 60)
end;

set @Minuto = @Total

set @Return = cast(@dia as varchar(20)) + 'd ' + cast(@Hora as varchar(20)) + 'h ' + cast(@Minuto as varchar(20)) +'m'

return @Return
END