Escolar Documentos
Profissional Documentos
Cultura Documentos
NDICE
1.
INTRODUO............................................................................................................................. 4
2.
3.
4.
CRIAO DE UM DATABASE................................................................................................ 21
4.1. Criando um Banco de Dados com a utilizao do SQL SERVER Management Studio .............. 21
4.2. Criao de um Banco de Dados atravs de Scripts.................................................................. 23
4.3. CARACTERSTICA DE UM DATABASE ................................................................................ 24
5.
6.
Banco de Dados
Autor: Nilson A. Borges
2 de 101
Banco de Dados
Autor: Nilson A. Borges
3 de 101
1. INTRODUO
Veremos nesta apostila de forma simplificada os comandos de
manipulao e consultas de dados, bem como suas clausulas, operadores e
funes. Para isso estaremos utilizando o gerenciador de banco de dados
Microsoft SQL Server 2008.
O comando Transact-SQL uma linguagem estruturada para consultas,
utilizada no banco de dados da Microsoft, o SQL Server 2008.
Veja em seguida uma lista dos comandos Transact SQL.
DCL Data Control Language Linguagem de Controle de Dados.
GRANT
Concede permisses.
DENY
Nega permisses.
REVOKE Revoga a concesso ou a negao de permisso.
DDL- Data Definition Language- Linguagem de Definio de dados.
CREATE
Cria objeto no sistema.
ALTER
Altera a estrutura dos objetos.
DROP
Elimina objetos do sistema.
DML- Data Manipulation Language Linguagem de Manipulao de Dados.
SELECT
L dados de tabelas e views.
INSERT
Insere dados em tabelas.
UPDATE
Altera dados da tabela.
DELETE
Exclui dados das tabelas.
BACKUP
Realiza backup de dados.
RESTORE
Restaura dados de um backup
BULK INSERT Realiza a incluso de grande quantidade de dados em uma
tabela.
Banco de Dados
Autor: Nilson A. Borges
4 de 101
Controlar locks;
5 de 101
Banco de Dados
Autor: Nilson A. Borges
6 de 101
Server Express tem sua base no SQL Server. Ele tambm substitui
* Nota: x86: Windows 32 bits , x64: Windows 64 Bits e IA64: Windows 64 bits
Itanium
Banco de Dados
Autor: Nilson A. Borges
7 de 101
componentes
de
conectividade,
modelos
de
programao,
Banco de Dados
Autor: Nilson A. Borges
8 de 101
Banco de Dados
Autor: Nilson A. Borges
9 de 101
Ferramentas de
Descrio
gerenciamento
SQL Server
Management Studio
Banco de Dados
Autor: Nilson A. Borges
10 de 101
SQL Server
Orientador de
Otimizao do
Mecanismo de Banco
de Dados
Business Intelligence
Development Studio
Componentes de
conectividade
Banco de Dados
Autor: Nilson A. Borges
11 de 101
Banco de Dados
Autor: Nilson A. Borges
12 de 101
Recurso
Requisito de espao em
disco
345 MB
304 MB
Integration Services
591 MB
157 MB
Ir na Barra de Tarefas
Todos os Programas
Banco de Dados
Autor: Nilson A. Borges
13 de 101
Banco de Dados
Autor: Nilson A. Borges
14 de 101
Banco de Dados
Autor: Nilson A. Borges
15 de 101
master
model
tempdb
msdb
System
tables
System
tables
System
tables
System
tables
SAU02
SAU05
System
tables
System
tables
Bancos de
dados de
usurio
Banco de Dados
Autor: Nilson A. Borges
16 de 101
MODEL
Fornece um prottipo (template) para um novo banco de dados.
Contm as tabelas de sistema que sero inseridas em cada banco de dados de
usurio. As seguintes implementaes podem ser realizadas neste database:
a) tipos definidos pelo usurio (user datatypes), regras (rules), padres
(defaults), stored procedures;
b) usurios que tero acesso a todos os bancos adicionados ao sistema
(administradores);
c) privilgios padro, notadamente aos usurios guest (guest accounts);
Banco de Dados
Autor: Nilson A. Borges
17 de 101
sysalternates
syscolumns
syscomments
sysdepends
sysindexes
syskeys
syslogs
sysobjects
sysprocedures
sysprotects
syssegments
systypes
sysusers
sysreferences
sysconstraints
sysarticles
syspublications
syssubscriptions
Banco de Dados
Autor: Nilson A. Borges
18 de 101
TEMPDB
Providencia um espao de armazenamento para tabelas e outras
aes temporrias ou intermedirias, tais como resultados que envolvam a
clusula GROUP BY, ORDER BY, DISTINCT e cursores (CURSORS). Possui
as seguintes caractersticas:
a) criado automaticamente no DEVICE MASTER (ateno, DEVICE e
DATABASE so coisas diferentes);
b) seu contedo apagado quando o usurio fecha a conexo, exceto
para tabelas temporrias globais;
c) quando o banco parado (stoped) seu contedo apagado
completamente;
d) seu tamanho padro de 2 Mbytes.
e) pode ser colocado em memria RAM.
Banco de Dados
Autor: Nilson A. Borges
19 de 101
f) sysservermessages
mensagens
sobre
as
operaes
relacionadas ao servidor.
Banco de Dados
Autor: Nilson A. Borges
20 de 101
4. CRIAO DE UM DATABASE
Um database uma estrutura lgica dentro da qual so criados os
sistemas de banco de dados. Ele formado por dois tipos de arquivos. Um
dos tipos armazena dados deste sistema e o outro armazena transaes deste
sistema (incluses,alteraes e excluses realizadas em seus dados).
Os arquivos de dados ficam organizados em grupos de arquivos e o
primeiro grupo criado automaticamente no momento da criao do database
chama-se PRIMARY.
Banco de Dados
Autor: Nilson A. Borges
21 de 101
Banco de Dados
Autor: Nilson A. Borges
22 de 101
Banco de Dados
Autor: Nilson A. Borges
23 de 101
5. Criao de Tabelas
So objetos que vo conter os dados de um sistema. Uma tabela um
objeto bidimensional formado por linhas e colunas. As colunas, ou campos, so
atributos do assunto por ela armazenada e as linhas ou registros formam um
conjunto completo de todos os atributos.
Cada coluna da sua tabela deve ter um datatype tipo de dados , que
o formato no qual os dados sero armazenados no disco. Cada tipo de dados
ocupa um espao limitado dentro do disco e pode armazenar uma deyerminada
faixa de valor. O SQL Server 2008 possuem vrios tipos de datatypes que
podem ser utilizados em colunas das tabelas ou em variveis de memria.
Possui tambm regras para garantir a integridade e a consistncia dos
dados de uma aplicao, necessrio utilizar:
Datatypes
Nulabilidade
Autonumerao
Constraints
o PK (Primary Key)
o FK (Foreign Key)
Banco de Dados
24 de 101
Banco de Dados
Autor: Nilson A. Borges
25 de 101
TIPOS NUMRICOS
NOME
TAMANHO
(BYTES)
MENOR
VALOR
MAIOR
VALOR
ARMAZENA
BIGINT
-263
263 - 1
INTEIRO
31
INT
-2
-2
TINYINT
-1
INTEIRO
15
-1
INTEIRO
15
SMALLINT
31
255
INTEIRO
DECIMAL(C,
D)
VARIVEL
-1038
1038 - 1
NUMERIC(C,
D)
VARIVEL
-1038
1038 - 1
MONEY
-263
263 - 1
MONETRIO - EQUIVALE A UM
DECIMAL COM 8 CASAS DECIMAIS
SMALLMONEY
-231
231 - 1
MONETRIO - EQUIVALE A UM
DECIMAL COM 4 CASAS DECIMAIS
FLOAT(D)
4 OU 8
-1.79 X
10308
1.79 X
10308
REAL
-3.4 X
1038
3.4 X 1038
TIPOS TEXTO
NOME
TABELA
LIMITE
(CARACTERES)
CHAR(N)
ASCII
8000
EXATAMENTE N
CARACTERES, ONDE N
INDICA O TAMANHO DO
CAMPO
VARCHAR(N)
ASCII
8000
AT N
CARACTERES, ONDE N
INDICA O TAMANHO DO
CAMPO
NCHAR(N)
UNICODE
4000
EXATAMENTE N
CARACTERES, ONDE N
INDICA O TAMANHO DO
CAMPO
NVARCHAR(N) UNICODE
4000
AT N
CARACTERES, ONDE N
INDICA O TAMANHO DO
CAMPO
231 - 1
AT 231 - 1
CARACTERES
AT 231 - 1
CARACTERES
TEXT
NTEXT
ASCII
UNICODE
31
-1
TAMANHO
(CARACTERES)
ARMAZENA
TIPOS DATA
NOME
TAMANHO
(BYTES)
MENOR
VALOR
MAIOR
VALOR
PRECISO
ARMAZENA
DATETIME
1753-01-01
00:00:00.000
9999-12-31
23:59:59.997
3.33 ms
DATA/HORA
2079-06-06
23:59:00
DATA/HORA
SMALLDATETIME
1900-01-01
00:00:00
Banco de Dados
Autor: Nilson A. Borges
26 de 101
Nulabilidade
Nulabilidade: Significa se o campo declarado pode ser ou no nulo.
Para fazer tal declarao necessrio definir o campo com a clausula:
o Not null (no permite valor nulo,preenchimento obrigatrio do
campo)
o Null (permite valor nulo, preenchimento no obrigatrio do
campo)
Constraints: Integridade
Primary Key(Chave Primria):
Fazendo parte das regras de modelagem de dados relacional, uma
chave primria uma regra que deve sempre ser colocada em uma coluna ou
um conjunto de colunas de uma tabela, para que o sistema no aceite dados
repetitivos nesses campos, tornando-se possvel a identificao da unicidade
de cada registro de uma tabela.
.
Exemplo:
Constraint PK_Cliente Primary Key (Cd_Cli)
Banco de Dados
Autor: Nilson A. Borges
27 de 101
Exemplo:
Constraint FK_NotaFiscal Foreign Key(Cd_Cli)
References Cliente(Cod_Cli)
On delete cascade
Detalhes sobre o uso das Constraints Foreign Key(FK)
Banco de Dados
Autor: Nilson A. Borges
28 de 101
int
identity
not null,
Descricao_email
varchar(40)
not null,
provedor_email
varchar(40)
not null,
Cod_Cli
int
not null,
Constraint PK_email
Primary Key(Cod_email)
)
Banco de Dados
Autor: Nilson A. Borges
29 de 101
int
identity
not null,
Nome_Cli
varchar(40)
not null,
End_Cli
varchar(30)
not null,
Bai_Cli
varchar(20)
not null,
Cid_Cli
varchar(20)
not null,
Uf_Cli
char(3)
not null,
Tel_Cli
varchar(15)
null,
Constraint PK_Cliente
Primary Key(Cod_Cli)
)
Create Table NotaFiscal
(
Num_Nota
int identity
not null,
Cod_Cli
int
not null,
Serie_Nota
varchar(10)
not null,
Emissao_Nota
smalldatetime
null,
Vtot_Nota
SmallMoney
not null,
Constraint PK_NotaFiscal
Primary Key(Num_Nota),
Constraint FK_Cliente
Foreign Key(Cod_Cli)
References cliente(Cod_Cli)
On delete cascade
)
Banco de Dados
Autor: Nilson A. Borges
30 de 101
int
identity
not null,
Nome_Prod
varchar(50)
not null,
Qtd_Estoque
int
not null,
Val_Prod
decimal(8,2)
not null,
Constraint PK_Prod
Primary Key(Cod_Prod)
)
int
not null,
Cod_Prod
int
not null,
Qtd_Vend
int
not null,
Val_Vend
decimal(8,2)
not null,
Constraint PK_ItensNota
Primary Key(Num_Nota,Cod_Prod),
Constraint FK_Itens1Nota
Foreign Key(Num_Nota)
References NotaFiscal(Num_Nota)
On delete cascade ,
Constraint FK_Itens2Nota
Foreign Key(Cod_Prod)
References Produto(Cod_Prod)
On delete cascade
)
Banco de Dados
Autor: Nilson A. Borges
31 de 101
Banco de Dados
Autor: Nilson A. Borges
32 de 101
Banco de Dados
Autor: Nilson A. Borges
33 de 101
Banco de Dados
Autor: Nilson A. Borges
34 de 101
INTO
CLIENTE
VALUES
(Nilson
Borges,
Borges,
Av.Paulista,929,
Cerqueira
como
identity
que
autonumerao
seu
preenchimento automtico
/*insere
os
valores
(1,WEP2525,2004/08/12,250.89)
na
tabela
NOTAFISCAL*/
INSERT
INTO
NOTAFISCAL
VALUES
(1,
WEP2525,
2004/08/12,250.89)
Ou
INSERT INTO NOTAFISCAL (Cod_Cli, Serie_Nota, Emissao_Nota,
Vtot_Nota)
VALUES (1, WEP2525, 2004/08/12,250.89)
Banco de Dados
Autor: Nilson A. Borges
35 de 101
Banco de Dados
Autor: Nilson A. Borges
36 de 101
Operadores de Comparao
Operador
Descrio
Igual a
<>
Diferente
>
Maior que
>=
Maior ou igual a
<
Menor que
<=
Menor ou igual a
Exerccio
1) Atualize o campo Cid_Cli da tabela Cliente para Santo Andr para os registros dos
clientes do campo UF_Cli igual a SP.
2) Atualize o campo Cod_Cli da tabela NotaFiscal para 3 para os registros das Notas
Fiscais com valor total abaixo de 130.00.
3) Atualiza o campo VTot_Nota com um desconto de 23% para o registros das Notas
Fiscais com valor total diferente de 581.20
Banco de Dados
Autor: Nilson A. Borges
37 de 101
Exemplo:
Exerccios
1) Excluir todas as NotasFiscais onde a Data de Emisso superior a 15/08/2004
2) Excluir todas as NotasFiscais onde o valor total seja menor ou igual a 4520.21
3) Excluir todos os clientes onde moram no Estado de Minas Gerais.
Banco de Dados
Autor: Nilson A. Borges
38 de 101
39 de 101
Banco de Dados
Autor: Nilson A. Borges
40 de 101
Banco de Dados
Autor: Nilson A. Borges
41 de 101
Banco de Dados
Autor: Nilson A. Borges
42 de 101
Exemplos:
SELECT COD_CLI, NOME_CLI,SEXO_CLI FROM CLIENTE
SELECT COD_CLI, NUM_LANC, DATA_CREDCLI, CRED_CLI
FROM CREDITO
SELECT
COD_PROD,
NOME_PROD,
VAL_UNITPROD
FROM
PRODUTO
SELECT
COD_FUNC,
NOME_FUNC,
SAL_FUNC
FROM
FUNCIONARIO
Banco de Dados
Autor: Nilson A. Borges
43 de 101
Sintaxe:
SELECT <campo> FROM <tabela> [WHERE <condio>]
ORDER BY <campo_ordenacao> [ASC/DESC]
Exemplos:
/* seleciona todos os registros da tabela CLIENTES ordenando o
retorno pelo campo CODIGO em ordem ascendente */
SELECT * FROM CLIENTE ORDER BY COD_CLI ASC
Banco de Dados
Autor: Nilson A. Borges
44 de 101
Sintaxe:
Exemplos:
/* seleciona o valor do campo NOME da tabela CLIENTES */
SELECT NOME_CLI AS "NOME DO CLIENTE"
FROM CLIENTE
Observe que a coluna Nome_Cli passou a chamar Nome do Cliente
SELECT
COD_CLI,NOME_CLI,RENDA_CLI,RENDA_CLI*1.37
Banco de Dados
Autor: Nilson A. Borges
45 de 101
Exemplo:
/*sero listados todos os registro da tabela CLIENTES onde o
campo Cod_Cli for igual a 1 */
SELECT * FROM CLIENTE WHERE COD_CLI = 1
Banco de Dados
Autor: Nilson A. Borges
46 de 101
Exemplos:
/* seleciona todos os registros da tabela CLIENTE onde o campo
Cod_Cli estiver entre 1 e 5 */
SELECT * FROM CLIENTE
WHERE COD_CLI BETWEEN 1 AND 5
DATA_PED
BETWEEN
'2003/10/05'
AND
2004/10/02'
Banco de Dados
Autor: Nilson A. Borges
47 de 101
FROM
CLIENTE
WHERE
NOME_CLI
NOT
LIKE %OLIVEIRA%
Banco de Dados
Autor: Nilson A. Borges
48 de 101
operador
DISTINCT
elimina
todas
as
replicaes,
Sintaxe:
SELECT
DISTINCT
<campo>
<condio>]
Exemplos:
/* seleciona todos os valores do campo Cdigo do Cliente, valor
do pedido da tabela PEDIDO sem repetio dos cdigos do cliente
*/
SELECT DISTINCT COD_CLI,VAL_PED FROM PEDIDO
Banco de Dados
Autor: Nilson A. Borges
49 de 101
Exemplos:
DATA_PED
BETWEEN
2008/12/02
AND
2010/08/03
Banco de Dados
Autor: Nilson A. Borges
50 de 101
Sintaxe
SELECT (<campo_agrupamento> e/ou <funcao_agrupamento>)
FROM <tabela> [WHERE <condio>]
GROUP BY <campo_agrupamento>
Exemplo:
/* seleciona a quantidade de telefones que cada cliente possui
agrupado por cliente */
SELECT COD_CLI,COUNT(COD_CLI) AS TOTAL TELEFONE
FROM FONE
GROUP BY COD_CLI
COD_CLI,COUNT(COD_CLI)
AS
TOTAL
FROM EMAIL
GROUP BY COD_CLI
Banco de Dados
Autor: Nilson A. Borges
51 de 101
FROM PRODUTO
GROUP BY COD_PROD
Banco de Dados
Autor: Nilson A. Borges
52 de 101
Exemplos:
FROM PRODUTO
GROUP BY COD_PROD
Banco de Dados
Autor: Nilson A. Borges
53 de 101
Exemplos:
MIN(RENDA_CLI)
AS
MENOR
RENDA
FROM
CLIENTE
FROM
PRODUTO
Banco de Dados
Autor: Nilson A. Borges
54 de 101
COD_CLI,
MIN(RENDA_CLI)
MAX(RENDA_CLI) AS MXIMO
AS
MINIMO,
COD_CLI
HAVING AVG(RENDA_CLI) > 450
Banco de Dados
Autor: Nilson A. Borges
55 de 101
Banco de Dados
Autor: Nilson A. Borges
56 de 101
Sintaxe:
No existe uma sintaxe fixa, mas existem algumas restries:
- deve estar sempre entre parnteses;
- no pode ser usada na clusula ORDER BY;
- a subquery no pode conter ORDER BY, COMPUTE ou SELECT
INTO
- a subquery no pode, em hiptese alguma, retornar mais de uma
coluna no caso de comparao por valores ou listas;
- a subquery deve usar a funo EXISTS se fizer um SELECT *;
- no pode usar na lista de colunas do SELECT uma coluna do tipo
IMAGE ou TEXT.
Exemplos:
(SELECT AVG(RENDA_CLI)
FROM CLIENTE )
57 de 101
COD_CLI
IN
(SELECT
COD_CLI
FROM
PEDIDO
WHERE COD_FUNC=6)
FROM
CONJUGE
WHERE
COD_CLI
IN
(SELECT
Alguns casos podem ser resolvidos tanto por SUBQUERIES como por
JOINS, outros apenas por SUBQUERIES.
Banco de Dados
Autor: Nilson A. Borges
58 de 101
Banco de Dados
Autor: Nilson A. Borges
59 de 101
Banco de Dados
Autor: Nilson A. Borges
60 de 101
SQL Server retorna somente linhas nicas quando voc usa left ou right
outer joins.
Use um left outer join para mostrar todas as linhas a partir da primeira
tabela nomeada. Se voc inverter a ordem no qual as tabelas esto
listadas na clausula FROM, a declarao produz o mesmo resultado
como um right outer join.
LEFT JOIN
Banco de Dados
Autor: Nilson A. Borges
61 de 101
62 de 101
a utilizao de alias)
Banco de Dados
Autor: Nilson A. Borges
63 de 101
NOME_BAIRRO
da
tabela
ENDEREO
Banco de Dados
Autor: Nilson A. Borges
64 de 101
Uma view no pode ter um select com order by sem a clausula Top. Uma
view no recebe parmetros de entrada.
Para criar uma view, utilizamos o comando CREATE VIEW. Sua
sintaxe:
Sintaxe:
CREATE VIEW <view_name> AS
<instruo_SELECT>
Exemplos:
65 de 101
Banco de Dados
Autor: Nilson A. Borges
66 de 101
67 de 101
Banco de Dados
Autor: Nilson A. Borges
68 de 101
69 de 101
Banco de Dados
Autor: Nilson A. Borges
70 de 101
Exemplo 2 :
71 de 101
Banco de Dados
Autor: Nilson A. Borges
72 de 101
Para testar
SELECT * FROM F_Funcionario(11)
2) Escreva uma funo que retorna todos os dados do funcionrio.
CREATE FUNCTION F_Funcionario( )
RETURNS TABLE
AS
RETURN(SELECT * FROM Funcionario)
Para testar
SELECT * FROM F_Funcionario( )
3) Escreva uma funo que recebe o cdigo do cliente como parmetro e
retorna a Codigo do cliente e a renda familiar , incluindo na sua renda o salrio
do seu conjuge se ele for casado.*/
CREATE FUNCTION F_RendaTodosCliConj
( @COD_CLI
INT )
RETURNS TABLE
AS RETURN
(SELECT Cliente.Cod_Cli, Cliente.Renda_Cli +
Conjuge.Renda_Conj
AS Renda
Banco de Dados
Autor: Nilson A. Borges
73 de 101
AS Renda
Para testar
SELECT * FROM F_PedPar(1)
Banco de Dados
Autor: Nilson A. Borges
74 de 101
Banco de Dados
Autor: Nilson A. Borges
75 de 101
No exemplo estamos gerando uma tabela de juros com 240 perodos com juros
de 11%
Opcionalmente, chamadas s funes do tipo table valued podero ser seguida
de um alias para a tabela. Pode-se tambm utilizar um alias para se referir s
colunas que so retornadas pela funo nas clusulas SELECT e WHERE.
Banco de Dados
Autor: Nilson A. Borges
76 de 101
Banco de Dados
Autor: Nilson A. Borges
77 de 101
Banco de Dados
Autor: Nilson A. Borges
78 de 101
Sintaxe
CREATE { PROC | PROCEDURE } [schema_name.]
procedure_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ OUT | OUTPUT ]
[READONLY]
] [ ,...n ]
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ]
AS { <sql_statement> [;][ ...n ] |
<method_specifier> }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE AS Clause ]
<sql_statement> ::=
{ [ BEGIN ] statements [ END ] }
<method_specifier> ::=
EXTERNAL NAME assembly_name.class_name.method_name
Argumentos
schema_name
o nome do esquema ao qual o procedimento pertence.
procedure_name
o nome do novo procedimento armazenado. Os nomes de
procedimento devem estar de acordo com as regras para identificadores e
devem ser exclusivos no esquema.
Recomendamos fortemente que voc no use o prefixo sp_ no nome
de procedimento. Este prefixo usado pelo SQL Server para designar
procedimentos armazenados de sistema.
Banco de Dados
Autor: Nilson A. Borges
79 de 101
Banco de Dados
Autor: Nilson A. Borges
80 de 101
Banco de Dados
Autor: Nilson A. Borges
81 de 101
82 de 101
Banco de Dados
Autor: Nilson A. Borges
83 de 101
FOR
REPLICATION
no
pode
ser
especificado
para
84 de 101
Banco de Dados
Autor: Nilson A. Borges
85 de 101
Exemplo 3:
Escreva uma procedure onde entre com a nota p1 e p2 e mostre a mdia
escolar
CREATE PROCEDURE SP_MEDIA
@NUM_1 decimal(3,1),
@NUM_2 decimal(3,1),
@RESPOSTA decimal(3,1) Output
AS Set @RESPOSTA = (@NUM_1 + @NUM_2*2)/3
Para Testar
Banco de Dados
Autor: Nilson A. Borges
86 de 101
Exemplo 4:
Escreva uma procedure se a soma dos salrios dos funcionrios for maior do
que 5000 aplique um aumento de 15,23% para todos funcionrios. Caso
contrrio 10,45%.
USE INFONEW
GO
CREATE PROCEDURE SP_FUNCIONARIO
As DECLARE @PERCENT DECIMAL(10,2)
IF (SELECT sum(Sal_Func) FROM FUNCIONARIO)>=5000
SET @PERCENT = 1.1523
ELSE
SET @PERCENT = 1.1045
UPDATE FUNCIONARIO SET SAL_FUNC = SAL_FUNC * @PERCENT
Para Testar
EXEC SP_FUNCIONARIO
Select * from funcionario (Verificar o novo salario)
Banco de Dados
Autor: Nilson A. Borges
87 de 101
EXEC SP_FUNCIONARIO2
Select * from funcionario (Verificar o novo salario)
Banco de Dados
Autor: Nilson A. Borges
88 de 101
Banco de Dados
Autor: Nilson A. Borges
89 de 101
Banco de Dados
Autor: Nilson A. Borges
90 de 101
Banco de Dados
Autor: Nilson A. Borges
91 de 101
Banco de Dados
Autor: Nilson A. Borges
92 de 101
Para
alterar
um
trigger
usamos
trigger
utilizamos
comando
ALTER
TRIGGER
DROP
TRIGGER
nome_do_trigger.
Para
excluir
um
comando
nome_do_trigger.
Lembrando que se a tabela que contm o trigger for eliminada o trigger
tambm ser.
Banco de Dados
Autor: Nilson A. Borges
93 de 101
RAISERROR('Operao
no
permitida
nesta
tabela',16,1)
Para testar
DELETE ESTADO
OU
UPDATE ESTADO
SET NOME_EST=COLORADO
WHERE SIGLA_EST= CL
O evento define qual a instruo DML que aciona a trigger. Informa
qual instruo SQL ir disparar a trigger. Pode ser:
INSERT
UPDATE
DELETE
Banco de Dados
Autor: Nilson A. Borges
94 de 101
Qtd_EstqProd
Qtd_EstqProd
Inserted.Qtd_Vend
FROM Produto INNER JOIN inserted
ON Produto.Cod_Prod = Inserted.Cod_Prod
ELSE
BEGIN
RAISERROR('Este
pedido
no
est
aberto
Operao no Executada',16,1)
ROLLBACK TRANSACTION
RETURN
END
Banco de Dados
Autor: Nilson A. Borges
95 de 101
TABLE
nome_tabela
DISABLE
TRIGGER
nome_da_trigger
GO
Banco de Dados
Autor: Nilson A. Borges
96 de 101
97 de 101
Banco de Dados
Autor: Nilson A. Borges
98 de 101
'PARA
APAGAR
TABELAS
DESABILITE
TRIGGER
T_SEGURANCA'
Para testar
DROP TABLE ESTADO
DROP TABLE EMAIL
DROP TABLE FONE
Banco de Dados
Autor: Nilson A. Borges
99 de 101
CONSIDERAES FINAIS
Esta apostila foi confeccionada para os alunos da Instituio de
Ensino Superior Faculdade Anchieta como um material de apoio para a
disciplina Banco de Dados onde utilizado o SGDB SQL Server 2008 verso
Express.
Em caso de dvida mandar e-mail para nilson.dba@gmail.com , no
esquea de citar as mensagens de erro.
Banco de Dados
Autor: Nilson A. Borges
101
100 de
REFERNCIAS BIBLIOGRFICAS:
Leo, Renata de Oliveira
SQL 2000 SERVER: Estrutura e Implementao de Sistemas de Banco de
Dados
So Paulo , Editora Erica, 2002
Ritter, Mauricio
Microsoft SQL SERVER 2008, Fundamentos de Bancos de dados Passo a
Passo
Banco de Dados
Autor: Nilson A. Borges
101
101 de