sábado, 16 de janeiro de 2016

Dependências em SQL Server





DECLARE @NOME_TABELA VARCHAR(100)
SET @NOME_TABELA = 'TB_TABELA'

-- Retorna todos os objetos que dependem da Tabela
EXEC sp_MSdependencies @NOME_TABELA, NULL, 1315327 

-- Retorna todos os objetos que a Tabela depende
EXEC sp_MSdependencies @NOME_TABELA, null, 1053183 

quarta-feira, 16 de outubro de 2013

Oracle com XML? Sim veja como...

Fazendo umas pesquisas necessitei usar XML com Oracle, para compartilhar com os amigos segue a minha brincadeira, que coloco as duas formas mais comuns com elementos e com atributos:
SELECT XMLElement("Tempo"
        ,XMLAttributes(to_char(current_date,'dd/mm/yyyy') AS "Data",
                       to_char(current_date,'hh24:mi:ss') AS "Hora")
        , XMLElement("Dia",to_char(current_date,'dd'))
        , XMLElement("Mes",to_char(current_date,'mm'))
        , XMLElement("Ano",to_char(current_date,'yyyy'))
        , XMLElement("Horas",to_char(current_date,'hh24'))
        , XMLElement("Minutos",to_char(current_date,'mi'))
        , XMLElement("Segundos",to_char(current_date,'ss'))
       ) AS "XML_RESULT" FROM DUAL

Resultado da brincadeira:

<Tempo Data="16/10/2013" Hora="19:28:53">
    <Dia>16</Dia>
    <Mes>10</Mes>
    <Ano>2013</Ano>
    <Horas>19</Horas>
    <Minutos>28</Minutos>
    <Segundos>53</Segundos>
</Tempo>

Espero que isso ajude alguém, abraços

sábado, 27 de julho de 2013

Brincando com os operadores de comparação ( ANY | SOME e ALL )

Vou apresentar desta vez operadores de comparação que muitos desconhecem, são eles: ( ANY |SOME e ALL )


DECLARE @TABELA TABLE(ID INT)
INSERT INTO @TABELA SELECT 1
              UNION SELECT 2 
              UNION SELECT 3
              UNION SELECT 4

--ANY retorna verdadeiro comparando por QUALQUER valor de um Conjunto
IF 2 < ANY(SELECT ID FROM @TABELA)
BEGIN
   PRINT '2 É MENOR QUE QUALQUER VALOR DA TABELA'
END

--SOME retorna verdadeiro comparando por ALGUM valor de um Conjunto
IF 2 < SOME(SELECT ID FROM @TABELA)
BEGIN
   PRINT '2 É MENOR QUE ALGUM VALOR DA TABELA'
END

--ALL retorna verdadeiro comparando por TODOS valores de um Conjunto
IF 0 < ALL(SELECT ID FROM @TABELA)
BEGIN
   PRINT '0 É MENOR QUE TODOS OS VALORES DA TABELA'
END

--CURIOSIDADES: EQUIVALENCIA ANY E IN

--Trazer dados de @TABELA que seja IGUAL a QUALQUER valor do Conjunto
SELECT * 
  FROM @TABELA 
 WHERE ID = ANY(SELECT 1 UNION SELECT 2 UNION SELECT 5)

--Trazer dados de @TABELA que seja valores CONTIDOS num Conjunto
SELECT * 
  FROM @TABELA 
 WHERE ID IN(SELECT 1 UNION SELECT 2 UNION SELECT 5)
/*
Resultado em ambos os casos
ID
-----------
1
2
*/
--CURIOSIDADES: EQUIVALENCIA ALL e NOT IN
--Trazer dados de @TABELA que seja diferente de TODOS valores do Conjunto
SELECT * 
  FROM @TABELA 
 WHERE ID <> ALL(SELECT 1 UNION SELECT 2 UNION SELECT 5)

--Trazer dados de @TABELA que seja valores NAO CONTIDOS em um Conjunto
SELECT *  
  FROM @TABELA 
 WHERE ID NOT IN (SELECT 1 UNION SELECT 2 UNION SELECT 5)
/*
Resultado em ambos os casos
ID
-----------
3
4
*/