Fernanda Sallai

Blog de desenvolvimento e negócios.

SQL 2005 / 2008 - Instalando a base de dados AdventureWorks

A Microsoft disponibiliza uma base de dados de uma empresa fictícia chamada AdventureWorks para que possamos usar como exemplo em nossos aprendizados na manipulação dos dados no sql 2005 e 2008. Para sql 2000 existe a base de dados chamada Northwind.mdf.

Neste post aprenderemos como instalar a base de dados AdventureWorks para o sql 2008.

Primeiro passo: download do AdventureWorks2008_SR4.exe.

Segundo passo: instalar o executável, conforme imagens a seguir:

1) Leia e aceite os termos da licença e clique em next:

2) Será exibida a tela exibindo as informações do que será instalado e clique em install:

3) Aguarde o término da instalação:

Finalizada a instalação, abra o management sql 2008 e a base de dados estará dentro da pasta databases.

E agora é só aprimorar seus conhecimentos usando a base de dados de exemplo.

SQL - Problemas com truncate table

Vou começar 2010 com uma dica que me ajudou muito.

Vamos lá ?!

Estava limpando o banco de dados de um cliente usando a instrução truncate table. (Para quem não sabe como usar o truncate table, logo mais escreverei um post sobre isso).

Vamos nos basear na figura abaixo:

Primeiro usei esta instrução com as tabelas Movimento_Estoques e Preco_Vidros, pois, para limpar a tabela produtos é preciso que as tabelas relacionadas estejam sem dados para não ocorrer erro de chave estrangeira. Porém mesmo essas tabelas estando vazias continuava aparecendo erro de chave estrangeira ao tentar limpar a tabela Produtos.

Como resolvi esse problema ?! 

Exclui todos os registros da tabela Produtos (primeiro comando) e reiniciei seu identity (segundo comando).

DELETE PRODUTOS


DBCC CHECKIDENT (Produtos , RESEED, 0)

Essa foi a solução que resolvi utilizar. Indico somente usá-la se o truncate table não funcionar.

Até mais

SQL Server Express - Erro de conexão com usuário criado

Galera,

Após criar o banco de dados do meu tcc, fui criar um usuário para acessá-lo, porém ao tentar conectar com ele apareceu o seguinte erro:

Esse erro ocorre pois quando o SQL Server Express é instalado, a autenticação padrão é "Windows Authentication Mode" e somente  os usuários com contas válidas no Windows poderão logar com sucesso.

 

Para resolver esse problema:

  • Acesse o SQL Server Management Studio Express.
  • Na janela Object Explorer clique com botão direito sobre o nome do servidor "SEU-COMPUTADOR\SQLEXPRESS" e acione a opção Properties.
  • Na janela que se abrirá clique em Security (está na seção Select a Page).
  • Caso a opção Server Authentication esteja marcada como Windows Authentication Mode selecione a opção SQL Server and Windows Authentication Mode.
  • Clique em OK para salvar a janela de dialogo.
  • Pode fechar o Management Studio Express.

 

Siga os passos abaixo para que a configuração seja realizada com sucesso:

  • Acesse o SQL Server Configuration Manager.
  • Clique sobre a pasta SQL Server 2005 Services para exibir os serviços do SQL Server.
  • O serviço de nome SQL Server (SQLExpress) deve estar com estado Running.
  • Clique com o botão direito sobre ele e acione a opção Restart.
  • Pode fechar o Configuration Manager.

 

Após esses procedimentos será possível conectar ao SQL Server com qualquer usuário criado.

Até a próxima ....

 

 

Como criar uma Trigger

Resolvi criar este post porque estava pesquisando sobre criação de trigger e na web os exemplos que encontrei achei um pouco confusos, espero que este post esclareça as dúvidas que surgirem.

  • Conceito

Trigger ou gatilho é um recurso que é executado quando existir alguma modificação na tabela.

  • Motivo do uso

Estamos fazendo a migração de um projeto para um cliente, porém temos que tomar um certo cuidado porque o cliente irá utilizar o site antigo e o novo.

O cliente quer migrar o site da intranet conforme o da internet e queremos utilizar o mesma solução, mas para isso precisamos deixar os bancos de dados compatíveis sem afetar o site da intranet antigo. Por exemplo na tabela eventos na intranet temos a coluna Evt_Description e na internet a coluna Description, então criaremos na intranet a coluna Description e criar uma trigger para receber os valores que a Evt_Description receber na hora da inserção e atualização.

  • Criação da tabela

CREATE TABLE [dbo].[Events](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NULL,
[Date] [datetime] NULL,
[Evt_Description] [text] NULL,
[Description] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
END

  • Criação da trigger

//Criando uma trigger chamada TR_EVENTOS

CREATE TRIGGER TR_EVENTOS

//Na tabela events
ON EVENTS

//Depois que for realizado a inserção ou alteração dos dados

//Pode usar o BEFORE que significa antes de realizado a alteração na tabela real
AFTER INSERT,UPDATE
AS
BEGIN

SET NOCOUNT ON;

//Alterar na tabela events

UPDATE EVENTS

//Campo description receberá o valor do campo evt_description
SET DESCRIPTION = EVT_DESCRIPTION

//Quando o ID estiver no intervalo do resultado da sub query
WHERE ID IN (
SELECT ID

//INSERTED é uma tabela temporária que irá conter os resultados da busca
FROM INSERTED
)
END

GO

Sobre mim...

Olá… Meu nome é Fernanda Sallai. Bacharel em Sistemas de Informação e atuo na área de desenvolvimento.

Colaboradora do Portal Linha de Código e editora da revista Codificando.Net.

Estou sempre em busca de novos conhecimentos e espero compartilhá-los aqui no blog.

Obrigada pela visita e bons estudos.