Desinstalando o MSDE 2000 através de linha de comando


Através desta dica, o leitor poderá conhecer como realizar desinstalação do MSDE 2000.
 
Segue abaixo o comando para fazer a desinstalação do MSDE via DOS.

MsiExec.exe /X {E09B48B5-E141-427A-AB0C-D3605127224A} /quiet

Esta numeração entre chaves é o mesmo numero que consta no REGEDIT da maquina. 
 

Anúncios

Calculando porcentagem no SQL Server


Através desta dica, o leitor poderá entender como é fácil realizar cálculos matemáticos no SQL Server, principalmente calcular juros baseando em valores decimais.
 
Veja abaixo o exemplo:
 

Declare @Lucro Numeric(10,2)

Set

@Lucro=100.25

Print

‘Valor Atual:’+Convert(Char(10),@Lucro)+‘ ‘+‘Valor calculado:’+Convert(Char(10),@Lucro * 0.15)

Print

‘Valor Final:’+Convert(Char(10),@Lucro+(@Lucro * 0.15)) 

Trabalhando com casas decimais no SQL Server


Quando temos a necessidade de armazenar valores decimais ou realizar cálculos com estes valores, sempre devemos levar em consideração qual a melhor forma para realizar estes procedimentos, como também qual o melhor datatype a ser utilizado.
 
Com o objetivo de evitar a perda de valores no arredondamento de casas decimais, como também possíveis diferenças entre valores a serem calculados através de uma aplicação especifica.
 
Através dos exemplos abaixo, você poderá entender um pouco mais sobre como o SQL Server trata estes valores:

Contando a quantidade de casas decimais:
SELECT
LEN(RIGHT(135.900,LEN(135.900)-CHARINDEX(‘.’,135.900))) as qtde

Contando a quantidade de casas decimais em conjunto com simbolo de milhar:
select Len(Right(135.900,Len(135.900)-Charindex(‘.’,135.900)))

Diferentes formas de retornar somente a parte decimal:
select

Charindex(‘.’,135.900)
select Right(155.900,Charindex(‘.’,155.900)-1) As "Parte Decimal"
Select Right(10.200,CharIndex(‘.’,10.200)) As "Parte Decimal"
Select Right(130.200,Len(130.200)-CharIndex(‘.’,130.200)) As "Parte Decimal"

Retornando a diferença entre dois valores decimais:
DECLARE

@Numero Money
SET
@Numero = 255.55
Select @Numero FLOOR(@NUMERO) 

Obtendo o último valor identity em um campo


Umas das opções muita utilizadas no SQL Server para gerar uma sequência númerica de valores de forma automatica, é a opção identity, através desta opção a cada novo registro inserido em uma determinada table, o campo que possui a opção identity habilitada receberá um novo valor numérico de forma seqüencial, de acordo com o valor de incremento especifico.
 
Veja abaixo o exemplo para inserir um conjunto de valores dentro de uma table, utilizando um campo com a opção identity.
 

Create Table Teste

 (Codigo int identity(1,1),

  Descricao VarChar(10))

Insert Into Teste values(‘teste’)

Insert Into Teste values(‘teste’)

Insert Into Teste values(‘teste’)

Insert Into Teste values(‘teste’)

Select

@@Identity 

Utilizando o Database Publish Wizard


A Microsoft disponibiliza uma excelente ferramenta para exportação de bancos de dados entre o SQL Server 2000 e o SQL Server 2005, além disso possibilitando a publicação de uma base de dados em um ambiente já em operação, possibilitando de forma simple e tranquila a integração entre diversos servidores distribuidos, como também em uma rede local.
 
Esta ferramenta pouco conhecida, é chamada de Database Publish Wizard, para maiores informações e download, acesse:

Refazendo a numeração em uma coluna


Através desta dica, o leitor poderá refazer a numeração existente para um campo do tipo char, após ter excluído uma determinada quantidade de registros armazenados em uma table especificada, dentro de uma base de dados no SQL Server, sem ter a necessidade de apagar esta coluna.

Veja o exemplo:

CREATE TABLE #TEMP

(

ITEM INT,

NUMERO

CHAR(6))

INSERT INTO #TEMP VALUES(1,‘000008’)
INSERT INTO #TEMP VALUES(2,‘000008’)
INSERT INTO #TEMP VALUES(3,‘000008’)
INSERT INTO #TEMP VALUES(4,‘000008’)

Select * from #Temp

delete from #Temp
Where item=3

Declare

@Contador Int,
            @Linha Int

Set

@Contador=(Select Max(Item) from #Temp)
Set @Linha=1

While

@Linha < @Contador
  Begin
  
If @Linha = (Select Item from #Temp Where Item = @Linha)

    Begin

     Update #Temp
 
    Set Item=@Linha 
    
Where Item=@Linha

    End

    Else

    Begin

     Update #Temp
    
Set Item=@Linha
    
Where Item=@Linha+1

    End

   Set @Linha=@Linha+1

  End

 

 

Concatenando campos na criação de uma table


Muitas vezes, nos deperamos com a necessidade de armazenar os valores existentes dentro de um ou mais campos que compõem uma table, esta solução pode ser realizada facilmente sem ter a necessidade de utilizar qualquer tipo de procedure, function ou constraint, basta definir na criação da table, que um determinado campo deverá armazenar os dados existentes em outros campos da mesma table.
 
Veja o exemplo abaixo:
 
Create Table #Tb_Teste
(codigo int identity(1,1),
 codigogrupo int,
 codigomodel int,
 Controle As (Convert(VarChar(10),codigogrupo)+Convert(VarChar(10),CodigoModel))
)
 
Insert Into #Tb_Teste Values(1,1)
Insert Into #Tb_Teste Values(2,2) 

Select * from #tb_teste