Arquivo da tag: dica sql

SQL Server: Como visualizar conteúdo de triggers, procedures, views, funções, etc sem sp_helptext

No Sql server a procedure de sistema sp_helptext traz o conteúdo de triggers, procedures, views, funções, etc.

Uma alternativa ao uso do sp_helptext é a query abaixo:

	select definition 
	from sys.sql_modules
	where object_name(object_id) in ('VW_RELATORIO_A', 'VW_RELATORIO_B', 'SP_ATUALIZA_XX')

A vantagem no uso da query é que você pode usar IN e pesquisar vários object´s e por exemplo concatenar o comando GO para separar uma instrução da outra.

[]s

Anúncios

Deixe um comentário

Arquivado em Banco de Dados, SGBD Sql-Server, SQL

SQL Server – Função que limpa caracteres em HTML, CSS e ASCII do campo que desejar, no SQL

SQL Server – Função que limpa caracteres em HTML, CSS e ASCII do campo que desejar, no SQL. Contribuição/Créditos ao Andros Albert Cavalin

CREATE FUNCTION [dbo].[fncRemove_HTML] (@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
 
    DECLARE	@Start INT
    DECLARE	@End INT
    DECLARE	@Length INT
 
    -- Substitui a entidade HTML "&" pelo caracter ''
    SET @Start = CHARINDEX('&', @HTMLText)
    SET @End = @Start + 4
    SET @Length = (@End - @Start) + 1
 
    WHILE (@Start > 0 AND @End > 0 AND @Length > 0)
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '')
        SET @Start = CHARINDEX('&', @HTMLText)
        SET @End = @Start + 4
        SET @Length = (@End - @Start) + 1
    END
 
    -- Substitui a entidade HTML "<" pelo caracter '<'
    SET @Start = CHARINDEX('<', @HTMLText) SET @End = @Start + 3 SET @Length = (@End - @Start) + 1 WHILE (@Start > 0 AND @End > 0 AND @Length > 0) 
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '<')
        SET @Start = CHARINDEX('<', @HTMLText) SET @End = @Start + 3 SET @Length = (@End - @Start) + 1 END -- Substitui a entidade HTML ">" pelo caracter '>'
    SET @Start = CHARINDEX('>', @HTMLText)
    SET @End = @Start + 3
    SET @Length = (@End - @Start) + 1
 
    WHILE (@Start > 0 AND @End > 0 AND @Length > 0)
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '>')
        SET @Start = CHARINDEX('>', @HTMLText)
        SET @End = @Start + 3
        SET @Length = (@End - @Start) + 1
    END
 
    -- Substitui a entidade HTML "&&" pelo caracter ''
    SET @Start = CHARINDEX('&amp;', @HTMLText)
    SET @End = @Start + 4
    SET @Length = (@End - @Start) + 1
 
    WHILE (@Start > 0 AND @End > 0 AND @Length > 0)
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '')
        SET @Start = CHARINDEX('&amp;', @HTMLText)
        SET @End = @Start + 4
        SET @Length = (@End - @Start) + 1
    END
 
    -- Substitui a entidade HTML " " pelo caracter ' '
    SET @Start = CHARINDEX(' ', @HTMLText)
    SET @End = @Start + 5
    SET @Length = (@End - @Start) + 1
 
    WHILE (@Start > 0 AND @End > 0 AND @Length > 0)
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, ' ')
        SET @Start = CHARINDEX(' ', @HTMLText)
        SET @End = @Start + 5
        SET @Length = (@End - @Start) + 1
    END
 
    -- Substitui a tag por ''
    SET @Start = CHARINDEX('
', @HTMLText)
    SET @End = @Start + 3
    SET @Length = (@End - @Start) + 1
 
    WHILE (@Start > 0 AND @End > 0 AND @Length > 0)
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '')
        SET @Start = CHARINDEX('
', @HTMLText)
        SET @End = @Start + 3
        SET @Length = (@End - @Start) + 1
    END
 
 
    -- Substitui a tag por '')
    SET @Start = CHARINDEX('
', @HTMLText)
    SET @End = @Start + 4
    SET @Length = (@End - @Start) + 1
 
    WHILE (@Start > 0 AND @End > 0 AND @Length > 0)
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '')
        SET @Start = CHARINDEX('
', @HTMLText)
        SET @End = @Start + 4
        SET @Length = (@End - @Start) + 1
    END
 
    -- Substitui a tag 
 por ''
    SET @Start = CHARINDEX('
', @HTMLText)
    SET @End = @Start + 5
    SET @Length = (@End - @Start) + 1
 
    WHILE (@Start > 0 AND @End > 0 AND @Length > 0)
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '')
        SET @Start = CHARINDEX('
', @HTMLText)
        SET @End = @Start + 5
        SET @Length = (@End - @Start) + 1
    END
 
 
    -- Remove os parâmetros contidos nas tags HTML
    SET @Start = CHARINDEX('<', @HTMLText) SET @End = CHARINDEX('>', @HTMLText, CHARINDEX('<', @HTMLText)) SET @Length = (@End - @Start) + 1 WHILE (@Start > 0 AND @End > 0 AND @Length > 0)
    BEGIN
        SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '')
        SET @Start = CHARINDEX('<', @HTMLText) SET @End = CHARINDEX('>', @HTMLText, CHARINDEX('<', @HTMLText))
        SET @Length = (@End - @Start) + 1
    END

    
    SET @HTMLText = REPLACE(@HTMLText,'º','') -- º = ""
    SET @HTMLText = REPLACE(@HTMLText,''','') -- ' = ""
    SET @HTMLText = REPLACE(@HTMLText,'”','') -- ” = ""
    SET @HTMLText = REPLACE(@HTMLText,'"','') -- " = ""
    SET @HTMLText = REPLACE(@HTMLText,'–','') -- – = ""
    SET @HTMLText = REPLACE(@HTMLText,'§','') -- § = ""
    SET @HTMLText = REPLACE(@HTMLText,'·','') -- · = ""
    SET @HTMLText = REPLACE(@HTMLText,'“','') -- “ = ""
    
    SET @HTMLText = REPLACE(@HTMLText,'á','á') -- á = "á"
    SET @HTMLText = REPLACE(@HTMLText,'ã','ã') -- ã = "ã"
    SET @HTMLText = REPLACE(@HTMLText,'â','â') -- â = "â"
    SET @HTMLText = REPLACE(@HTMLText,'à','à') -- à = "à"
    SET @HTMLText = REPLACE(@HTMLText,'é','é') -- é = "é"
    SET @HTMLText = REPLACE(@HTMLText,'ê','ê') -- ê = "ê"
    SET @HTMLText = REPLACE(@HTMLText,'í','í') -- í = "í"
    SET @HTMLText = REPLACE(@HTMLText,'ó','ó') -- ó = "ó"
    SET @HTMLText = REPLACE(@HTMLText,'õ','õ') -- õ = "õ"
    SET @HTMLText = REPLACE(@HTMLText,'ô','ô') -- ô = "ô"
    SET @HTMLText = REPLACE(@HTMLText,'ú','ú') -- ú = "ú"
    SET @HTMLText = REPLACE(@HTMLText,'ç','ç') -- ç = "ç"
       
    RETURN LTRIM(RTRIM(@HTMLText))
END

Forma de uso:

SELECT [dbo].[fncRemove_HTML](campo_com_tags_html) as campo_sem_html FROM sua_tabela

Deixe um comentário

Arquivado em SGBD Sql-Server, SQL

Como copiar os dados de uma tabela sem precisar criar nova tabela via “create table” apenas com select e insert

Segue uma forma simples e prática via sql de copiar os dados de uma tabela sem precisar criar nova tabela via “create table” apenas com select e insert

select * into TABELA_BACKUP from TABELA_A_SER_COPIADA

O resultado será uma tabela clonada com os dados da tabela original

OBS. apesar da cópia da estrutura da tabela, coisas do tipo identity, sequence, trigger precisa ser re-criados na nova tabela.

É suportado pelo SQL Server desde a versão 2005 https://msdn.microsoft.com/en-us/library/ms188029(SQL.90).aspx

1 comentário

Arquivado em Banco de dados, SGBD Sql-Server, SQL

SQL Server – Remover “ENTER” no retorno da consulta SQL

Simples exemplo de como remover “nova linha” do retorno da consulta SQL. Isto evita loucuras em relatórios e exportações pra planilhas, etc 🙂

SELECT REPLACE(REPLACE(COLUNA_TABELA, CHAR(13), ''), CHAR(10), '')

1 comentário

Arquivado em Banco de Dados, SQL