Simulado para o Exame 70-433 – MCTS: Microsoft SQL Server 2008 – Database Development – Parte 06

Olá Pessoal,

As cinco primeiras partes do simulado cobriram os tópicos "Implementing Tables and Views" e "Implementing Programming Objects" respectivamente cobrindo 14% e 16% do exame 70-433. O próximo tópico "Working with Query Fundamentals" contribui com 21% das questões cobradas no exame. Eis a primeira leva de questões desse tópico.

Questão 046
A tabela "Senhas" possui os seguintes registros:

ID Senha
01 ABC
02 ABCD
03 CDEF
04 %ABCDEF
05 AB_DEF
06 AB%DEF

A instrução SELECT abaixo retornará quantos registros ?

SELECT Senha FROM Senhas WHERE Senha LIKE ‘%%%’

A. 0
B. 1
C. 2
D. 6

Questão 047
A tabela "Senhas" possui os seguintes registros:

ID Senha
01 ABC
02 ABCD
03 CDEF
04 %ABCDEF
05 AB_DEF
06 AB%DEF

Qual das instruções SELECT a seguir irá retornar o registro de ID igual a 05 ? Marque todas que se aplicam

A. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%_%’
B. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%\_%’
C. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%\\_%’
D. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%[_]%’
E. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%_%’ ESCAPE (‘_’)
F. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%?_%’ ESCAPE (‘?_’)
G. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%@_%’

Questão 048
A tabela "Lancamentos" possui os seguintes registros:

CentroCusto Valor
ADM001 1530
ADM001 2150
ADM002 3020
ADM003 1490
ADM003 5310
ADM004 2810
ADM004 7530

A instrução SELECT abaixo retornará quantos registros ?

SELECT CentroCusto, Valor FROM Lancamentos WHERE CentroCusto LIKE ‘ADM00[1-4]’

A. 0
B. 2
C. 4
D. 7

Questão 049
A tabela "Pessoas" possui os seguintes registros:

ID Nome Apelido
01 João João
02 Cléber NULL
03 Leonardo Leo
04 Daniel NULL
05 Fabiana Fabi
06 Wesley NULL

A instrução SELECT abaixo retornará quantos registros ?

SELECT ID, Nome, Apelido FROM Pessoas
WHERE NULLIF(Nome,Apelido) IS NULL

A. 0
B. 1
C. 3
D. 6

Questão 050
A tabela "Pagamentos" possui os seguintes registros:

Referência IDFunc ValorHora TotalHoras SalarioFixo PercentualComissao TotalVendido
2010-11-01 01 50.00 160 NULL NULL NULL
2010-11-01 02 45.00 175 NULL NULL NULL
2010-11-01 03 NULL NULL 5.615,18 NULL NULL
2010-11-01 04 NULL NULL 7.340,20 NULL NULL
2010-11-01 05 NULL NULL NULL 0,10 239.536,95
2010-11-01 06 NULL NULL NULL 0,05 560.390,00

Há funcionários que recebem por hora, outros recebem um salário fixo e outros são comissionados. As regras do cálculo do salário são especificadas a seguir:

  • Recebimento por hora: ValorHora * TotalHoras
  • Salário fixo: SalarioFixo
  • Comissionados: PercentualComissao * TotalVendido

Considerando que a remuneração de um funcionário só pode obedecer uma das três forma de pagamento, qual das instruções SELECT a seguir irá efetuar o cálculo correto ?

A. SELECT Referencia, IDFunc,
    ISNULL(ValorHora * TotalHoras, SalarioFixo, PercentualComissao * TotalVendido) As Salario
FROM Pagamentos
B. SELECT Referencia, IDFunc,
    FIRST-NON-NULL(ValorHora * TotalHoras, SalarioFixo, PercentualComissao * TotalVendido) As Salario
FROM Pagamentos
C. SELECT Referencia, IDFunc,
    COALESCE(ValorHora * TotalHoras, SalarioFixo, PercentualComissao * TotalVendido) As Salario
FROM Pagamentos
D. Nenhuma das anteriores

Questão 051
Considerando a tabela "Produtos" abaixo, quais das instruções SELECT não irá funcionar ?

Produto QuantidadeVendida Preco
HD Móvel 500GB 120 350
Pen Drive 16GB 150 100
Máquina Digital 120 600

A. SELECT Produto, QuantidadeVendida, Preco, QuantidadeVendida * Preco As TotalVendido FROM Produtos
WHERE TotalVendido >= 4000
B. SELECT Produto, QuantidadeVendida, Preco, QuantidadeVendida * Preco As TotalVendido FROM Produtos
ORDER BY TotalVendido DESC
C. SELECT Produto, QuantidadeVendida, Preco, QuantidadeVendida * Preco As TotalVendido FROM Produtos
WHERE QuantidadeVendida * Preco >= 4000
D. SELECT Produto, QuantidadeVendida, Preco, QuantidadeVendida * Preco As TotalVendido FROM Produtos
ORDER BY QuantidadeVendida * Preco DESC

Questão 052
Quais dos tipos de dados abaixo não podem ser utilizados em conjunto com a cláusula ORDER BY ? Marque todos que se aplicam

A. BIGINT
B. TEXT
C. NTEXT
D. XML
E. IMAGE
F. VACHAR(MAX)
G. VARBINARY(MAX)

Questão 053
A tabela "Funcionarios" possui os seguintes registros:

ID Matricula Nome DataDemissao
1 110532 André Alves Moura 12/01/2010
2 20754 Daniela Costa Gonçalves NULL
3 805381 Márcia Souza Pinheiros NULL
4 52312 Rodrigo Bastos Moreira 12/01/2010
5 764234 Antônio Mauro Batista Gomes 04/03/2009

Os tipos de dados das colunas são descritos a seguir:

  • ID: INT
  • Matricula: VARCHAR(10)
  • Nome: VARCHAR(80)
  • DataDemissao: DATE

Qual será a ordem dos IDs retornados tendo por base a seguinte instrução SELECT ?

SELECT ID, Matricula, Nome, DataDemissao FROM Funcionarios
ORDER BY DataDemissao, Matricula

A. 2, 3, 5, 4, 1
B. 2, 3, 5, 1, 4
C. 5, 4, 1, 2, 3
D. 5, 1, 4, 2, 3

Questão 054
A tabela "Funcionarios" possui os seguintes registros:

ID Matricula Nome DataDemissao
1 110532 André Alves Moura 12/01/2010
2 20754 Daniela Costa Gonçalves NULL
3 805381 Márcia Souza Pinheiros NULL
4 52312 Rodrigo Bastos Moreira 12/01/2010
5 764234 Antônio Mauro Batista Gomes 04/03/2009

De forma a preservar a lista de funcionários demitidos em uma tabela a parte chamada "FuncionariosDemitidos", foi executada a seguinte instrução SELECT:

SELECT IDENTITY(INT,1,1) As Ordem, Matricula, DataDemissao INTO FuncionariosDemitidos
FROM Funcionarios
WHERE DataDemissao IS NOT NULL

Considerando que a tabela "FuncionariosDemitidos" não existe antes da execução do comando, qual será o resultado esperado ?

A. Será gerado um erro de sintaxe, pois, a construção IDENTITY(INT,1,1) não é suportada
B. Será gerado um erro de sintaxe, pois, a instrução SELECT INTO só insere os dados se a tabela especificada após a palavra INTO tiver sido criada previamente
C. A tabela FuncionariosDemitidos será criada a partir da consulta na tabela de funcionários, a coluna Ordem terá três valores (1, 2 e 3) porém não será uma coluna Identity
D. A tabela FuncionariosDemitidos será criada a partir da consulta na tabela de funcionários, a coluna Ordem terá três valores (1, 2 e 3) e será uma coluna Identity

Respostas

Questão 046
A tabela "Senhas" possui os seguintes registros:

ID Senha
01 ABC
02 ABCD
03 CDEF
04 %ABCDEF
05 AB_DEF
06 AB%DEF

A instrução SELECT abaixo retornará quantos registros ?

SELECT Senha FROM Senhas WHERE Senha LIKE ‘%%%’

A. 0
B. 1
C. 2
D. 6

Resposta Correta: D

O caractér "%" é um caractér curinga que representa qualquer caractér ou conjunto de caractéres. É comum o seu uso para encontrar textos a partir de um pedaço (ex: LIKE ‘%ABC% para encontrar qualquer coisa que contenha ABC). Como o predicado LIKE especificou %%% na condição de pesquisa, qualquer texto irá obedecer a essa regra. Para recuperar registros que contenham caractéres curingas é necessário o uso de expressões regulares ou caractéres de escape. Ex: LIKE ‘%[%]%’ ou LIKE ‘%\%%’ ESCAPE(‘\’)

Respostas Incorretas: A, B, C

A, B, C – A quantidade de registros informada nessas opções não é igual a quantidade de registros retornada pela consulta.

Referências:
LIKE (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms179859(v=SQL.100).aspx

Questão 047
A tabela "Senhas" possui os seguintes registros:

ID Senha
01 ABC
02 ABCD
03 CDEF
04 %ABCDEF
05 AB_DEF
06 AB%DEF

Qual das instruções SELECT a seguir irá retornar o registro de ID igual a 05 ? Marque todas que se aplicam

A. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%_%’
B. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%\_%’
C. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%\\_%’
D. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%[_]%’
E. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%_%’ ESCAPE (‘_’)
F. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%?_%’ ESCAPE (‘?’)
G. SELECT ID, Senha FROM Senhas WHERE Senha LIKE ‘%@_%’

Respostas Corretas: D e F

Os predicados baseados em LIKE permitem a especificação de caractéres curingas como "%" e "_". O % representa qualquer conjunto de caractéres e o "_" representa um único caractér. O registro de ID de ID 5 possui o caractér "_" porém a especificação desse caractér em conjunto com o LIKE irá representar o caractér curinga e não o caractér "_" propriamente dito. Para pesquisar os registro com o "_" é necessário colocá-lo em uma expressão regular com o uso de colchetes (alternativa D) ou com um caractér de escape (alternativa F). O uso do ESCAPE com o caractér "?" torna esse último como caractér de escape. Como o caractér "?" precede o caractér "_", esse último não será considerado como caractér curinga, mas um caractér de pesquisa normal.

Respostas Incorretas: A, B, C, E, G

A – O caractér % é um curinga e representa qualquer combinação de caractéres, o caractér _ também é um caractér curinga porém representa um único caractér. O predicado LIKE ‘%_%’ informa, em outras palavras, qualquer texto que tenha um conjunto de caractéres qualquer, um caractér no meio e qualquer conjunto de caractéres ao final. Essa combinação irá recuperar todas as linhas.

B – Embora o caractér \ normalmente indique um caractér de escape em várias linguagens de programação e algumas expressões regulares esse não é o caso do T-SQL e dialetos SQL em geral. Essa consulta irá procurar textos que possuam o caractér "\" e não irá retornar o registro de ID igual a 5.

C – Assim como na alternativa B, utilizar o caractér "\" (mesmo que duas vezes) não tem o efeito de caractér de escape. O predicado especificado irá procurar por registros que tenham os caractéres \\ e não irá retornar o registro de ID igual a 5

E – A especificação de um caractér de escape possibilita pesquisar por textos que contenham caractéres curingas como o "%" e o "_" considerando-os como caractéres normais, mas é necessário especificar o caractér de escape e não o caractér curinga a ser pesquisado

G – Assim como nas alternativas B e C, o uso do caractér @ não indicará uma caractér de escape. Essa instrução apenas pesquisará por textos que possuam o caractér "@" não retornando o registro de ID igual a 5.

Referências:
LIKE (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms179859(v=SQL.100).aspx

Questão 048
A tabela "Lancamentos" possui os seguintes registros:

CentroCusto Valor
ADM001 1530
ADM001 2150
ADM002 3020
ADM003 1490
ADM003 5310
ADM004 2810
ADM004 7530

A instrução SELECT abaixo retornará quantos registros ?

SELECT CentroCusto, Valor FROM Lancamentos WHERE CentroCusto LIKE ‘ADM00[1-4]’

A. 0
B. 2
C. 4
D. 7

Resposta Correta: D

Os predicados baseados no uso do LIKE permitem a especificação de expressões regulares como critério de pesquisa. O critério de pesquisa contemplado pelo LIKE informa que os textos pesquisados devem iniciar com a string "ADM00" e o caractér seguinte pode ser qualquer número entre 1 e 4. Isso possibilita pesquisar todos os registros cuja coluna CentroCusto seja igual a ADM001, ADM002, ADM003 ou ADM004 retornando os sete registros.

Resposta Incorretas: A, B, C

A, B – Serão retornados sete registros ao total

C – O critério de pesquisa ADM00[1-4] pode dar a falsa impressão de que apenas os centros de custo "ADM001" e "ADM004" podem ser retornados, mais o sufixo [1-4] inclui todos os números entre 1 e 4 não os números 1 e 4.

Referências:
LIKE (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms179859(v=SQL.100).aspx

Questão 049
A tabela "Pessoas" possui os seguintes registros:

ID Nome Apelido
01 João João
02 Cléber NULL
03 Leonardo Leo
04 Daniel NULL
05 Fabiana Fabi
06 Wesley NULL

A instrução SELECT abaixo retornará quantos registros ?

SELECT ID, Nome, Apelido FROM Pessoas
WHERE NULLIF(Nome,Apelido) IS NULL

A. 0
B. 1
C. 3
D. 6

Resposta Correta: B

A função NULLIF retorna NULL quando os dois parâmetros informados tem exatamente o mesmo conteúdo. Apenas o registro de ID possui o nome igual ao sobrenome e será o único registro retornado. Caso os parâmetros não tenham o mesmo conteúdo é retornado o valor do primeiro parâmetro.

Respostas Incorretas: A, C, D

A, C, D – A quantidade de registros informadas não é igual a quantidade de registros retornada.

Referências:
NULLIF (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms177562(v=SQL.100).aspx

Questão 050
A tabela "Pagamentos" possui os seguintes registros:

Referência IDFunc ValorHora TotalHoras SalarioFixo PercentualComissao TotalVendido
2010-11-01 01 50.00 160 NULL NULL NULL
2010-11-01 02 45.00 175 NULL NULL NULL
2010-11-01 03 NULL NULL 5.615,18 NULL NULL
2010-11-01 04 NULL NULL 7.340,20 NULL NULL
2010-11-01 05 NULL NULL NULL 0,10 239.536,95
2010-11-01 06 NULL NULL NULL 0,05 560.390,00

Há funcionários que recebem por hora, outros recebem um salário fixo e outros são comissionados. As regras do cálculo do salário são especificadas a seguir:

  • Recebimento por hora: ValorHora * TotalHoras
  • Salário fixo: SalarioFixo
  • Comissionados: PercentualComissao * TotalVendido

Considerando que a remuneração de um funcionário só pode obedecer uma das três forma de pagamento, qual das instruções SELECT a seguir irá efetuar o cálculo correto ?

A. SELECT Referencia, IDFunc,
    ISNULL(ValorHora * TotalHoras, SalarioFixo, PercentualComissao * TotalVendido) As Salario
FROM Pagamentos
B. SELECT Referencia, IDFunc,
    FIRST-NON-NULL(ValorHora * TotalHoras, SalarioFixo, PercentualComissao * TotalVendido) As Salario
FROM Pagamentos
C. SELECT Referencia, IDFunc,
    COALESCE(ValorHora * TotalHoras, SalarioFixo, PercentualComissao * TotalVendido) As Salario
FROM Pagamentos
D. Nenhuma das anteriores

Resposta Correta: C

O salário é calculado por três formas de recebimento mutuamente excludentes, ou seja, caso o funcionário recebe por hora não poderá ter um salário fixo e nem uma comissão. Caso receba uma salário fixo não receberá por hora e nem por comissão. Caso receba por comissão não receberá por hora e nem um salário fixo.

Uma forma de efetuar o cálculo seria utilizar CASEs aninhados para efetuar testes sobre a forma de pagamento. Ex:

CASE WHEN ValorHora IS NOT NULL THEN ValorHora * TotalHoras
    ELSE
    CASE WHEN
SalarioFixo IS NOT NULL THEN SalarioFixo
        ELSE PercentualComissao * TotalVendido END
    END

Uma das formas mais eficientes de efetuar essa avaliação é utilizar a função COALESCE. Essa função pode receber vários parâmetros e retornará a primeira combinação não nula. Os parâmetros utilizados são justamente as formas de recebimento e a primeira não nula é a retornada para cada registro permitindo assim o retorno correto.

Respostas Incorretas: A, B, D

A – O uso do ISNULL seria adequado, mas essa função está limitada a dois parâmetros e as formas de recebimento consistem em três possibilidades. O uso do ISNULL com três parâmetros gera um erro de sintaxe. O uso do ISNULL pode ser aninhado, mas isso seria um código menos enxuto que o o COALESCE.

B – A função FIRST-NON-NULL não existe no SQL Server.

D – A opção correta é a C.

Referências:
COALESCE (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms190349(v=SQL.100).aspx

ISNULL (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms184325(v=SQL.100).aspx

Questão 051
Considerando a tabela "Produtos" abaixo, quais das instruções SELECT não irá funcionar ?

Produto QuantidadeVendida Preco
HD Móvel 500GB 120 350
Pen Drive 16GB 150 100
Máquina Digital 120 600

A. SELECT Produto, QuantidadeVendida, Preco, QuantidadeVendida * Preco As TotalVendido FROM Produtos
WHERE TotalVendido >= 4000
B. SELECT Produto, QuantidadeVendida, Preco, QuantidadeVendida * Preco As TotalVendido FROM Produtos
ORDER BY TotalVendido DESC
C. SELECT Produto, QuantidadeVendida, Preco, QuantidadeVendida * Preco As TotalVendido FROM Produtos
WHERE QuantidadeVendida * Preco >= 4000
D. SELECT Produto, QuantidadeVendida, Preco, QuantidadeVendida * Preco As TotalVendido FROM Produtos
ORDER BY QuantidadeVendida * Preco DESC

Resposta Correta: A

A avaliação lógica de uma consulta obedece algumas etapas básicas a seguir:

01 – Junção das tabelas especificadas na cláusula FROM
02 – Filtro dos registros baseados na cláusula WHERE
03 – Sumarização baseada na cláusula GROUP BY
04 – Filtro dos registros baseados na cláusula HAVING
05 – Exibição das colunas especificadas na cláusula SELECT
06 – Ordenação dos dados conforme os critérios da cláusula ORDER BY

O alias "TotalVendido" foi definido para uma expressão (QuantidadeVendida * Preco). Como a cláusula WHERE é processada antes da cláusula SELECT não teria como a cláusula WHERE conhecer previamente a coluna TotalVendido (derivada da expressão QuantidadeVendida * Preco). Assim sendo, essa consulta geraria um erro "Invalid Column Name", pois, a coluna é desconhecida para cláusula WHERE.

Respostas Incorretas: B, C, D

B – Na ordem de avaliação, a cláusula ORDER BY é definida após a cláusula SELECT. Assim sendo, para ordenações, é plenamente possível utilizar uma expressão (Alias) como critério de ordenação.

C – Não há restrições em filtrar registros tendo por base predicados baseados em expressão.

D – Não há restrições em ordenar registros tendo por base predicados baseados em expressão, respeitados os tipos válidos para ORDER BY.

Referências:
Logical Query Processing Poster (By Itzik Ben-Gan)
http://www.sql.co.il/books/insidetsql2008/Logical%20Query%20Processing%20Poster.pdf

Questão 052
Quais dos tipos de dados abaixo não podem ser utilizados em conjunto com a cláusula ORDER BY ? Marque todos que se aplicam

A. BIGINT
B. TEXT
C. NTEXT
D. XML
E. IMAGE
F. VACHAR(MAX)
G. VARBINARY(MAX)

Respostas Corretas: B, C, D, E

A cláusula ORDER BY não suporta tipo NTEXT, TEXT, IMAGE ou XML.

Respostas Incorretas: A, F, G

A, F, G – Esses tipos não estão entre os tipos restritos para cláusulas ORDER BY. Embora os tipos VARCHAR(MAX) e VARBINARY(MAX) sejam utilizados para armazenamento de dados LOB (Large Objects), as restrições não se aplicam a esses tipos.

Referências:
ORDER BY (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms188385(v=SQL.100).aspx

Questão 053
A tabela "Funcionarios" possui os seguintes registros:

ID Matricula Nome DataDemissao
1 110532 André Alves Moura 12/01/2010
2 20754 Daniela Costa Gonçalves NULL
3 805381 Márcia Souza Pinheiros NULL
4 52312 Rodrigo Bastos Moreira 12/01/2010
5 764234 Antônio Mauro Batista Gomes 04/03/2009

Os tipos de dados das colunas são descritos a seguir:

  • ID: INT
  • Matricula: VARCHAR(10)
  • Nome: VARCHAR(80)
  • DataDemissao: DATE

Qual será a ordem dos IDs retornados tendo por base a seguinte instrução SELECT ?

SELECT ID, Matricula, Nome, DataDemissao FROM Funcionarios
ORDER BY DataDemissao, Matricula

A. 2, 3, 5, 4, 1
B. 2, 3, 5, 1, 4
C. 5, 4, 1, 2, 3
D. 5, 1, 4, 2, 3

Resposta Correta: A

Na avaliação da cláusula ORDER BY, os valores nulos são avaliados primeiro (IDs 2 e 3). No caso do primeiro critério da cláusula incorrer em um empate, o próximo critério deve ser avaliado. A coluna matricula do registro de ID igual a 2 tem valor inferior à coluna matricula do registro de ID igual a 3.

Os demais registros (IDs 1, 4 e 5) possuem a coluna DataDemissao preenchida e como o registro de ID igual a 5 tem o menor valor para essa coluna é o próximo a ser contemplado na ordem. O registro de ID igual a 1 tem a coluna matricula igual a 110532 e o registro de ID igual a 4 tem a coluna matricula com o valor de 52312. Numericamente, o valor 52312 é inferior a 110532, mas como o tipo da dados da coluna é VARCHAR(10), o texto "110532" é inferior ao texto "52312" fazendo com que o ID 4 seja retornado antes do ID 1.

Respostas Incorretas: B, C, D

B – Essa alternativa estaria correta se o tipo de dados da coluna matricula fosse numérico, pois, o valor 52312 seria inferior ao valor 110532. Como o tipo de dados é textual, essa não é a ordem correta.

C, D – Os valores nulos são avaliados primeiro em uma cláusula ORDER BY.

Referências:
ORDER BY (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms188385(v=SQL.100).aspx

Questão 054
A tabela "Funcionarios" possui os seguintes registros:

ID Matricula Nome DataDemissao
1 110532 André Alves Moura 12/01/2010
2 20754 Daniela Costa Gonçalves NULL
3 805381 Márcia Souza Pinheiros NULL
4 52312 Rodrigo Bastos Moreira 12/01/2010
5 764234 Antônio Mauro Batista Gomes 04/03/2009

De forma a preservar a lista de funcionários demitidos em uma tabela a parte chamada "FuncionariosDemitidos", foi executada a seguinte instrução SELECT:

SELECT IDENTITY(INT,1,1) As Ordem, Matricula, DataDemissao INTO FuncionariosDemitidos
FROM Funcionarios
WHERE DataDemissao IS NOT NULL

Considerando que a tabela "FuncionariosDemitidos" não existe antes da execução do comando, qual será o resultado esperado ?

A. Será gerado um erro de sintaxe, pois, a construção IDENTITY(INT,1,1) não é suportada
B. Será gerado um erro de execução, pois, a instrução SELECT INTO só insere os dados se a tabela especificada após a palavra INTO tiver sido criada previamente
C. A tabela FuncionariosDemitidos será criada a partir da consulta na tabela de funcionários, a coluna Ordem terá três valores (1, 2 e 3) porém não será uma coluna Identity
D. A tabela FuncionariosDemitidos será criada a partir da consulta na tabela de funcionários, a coluna Ordem terá três valores (1, 2 e 3) e será uma coluna Identity

Resposta Correta: D

A instrução SELECT INTO cria uma nova tabela a partir de uma consulta. A expressão IDENTITY(INT,1,1) irá criar uma coluna a parte do tipo INT e Identity iniciando com o valor 1 (SEED) e incrementando os valores de 1 em 1 (Increment).

Respostas Incorretas: A, B, C

A – Essa construção é suportada, porém somente em instruções SELECT que contemplem o INTO. Não é possível utilizá-la em qualquer instrução SELECT

B – A instrução SELECT INTO cria uma tabela a parte dispensando sua existência prévia. Caso a tabela referenciada pelo INTO exista, então sim ocorrerá um erro de execução (There is already an object named ‘FuncionariosDemitidos’ in the database)

C – A expressão IDENTITY(INT,1,1) cria uma nova coluna Identity e preserva essa propriedade após a carga dos dados.

Referências:
ORDER BY (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms188385(v=SQL.100).aspx

[ ]s,

Gustavo

Uma resposta para “Simulado para o Exame 70-433 – MCTS: Microsoft SQL Server 2008 – Database Development – Parte 06

  1. Pingback: Materiais de Estudo | Luiz Phellipe

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s