AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 41765
Accepted
Rachel
Rachel
Asked: 2013-05-09 06:47:39 +0800 CST2013-05-09 06:47:39 +0800 CST 2013-05-09 06:47:39 +0800 CST

Como posso pesquisar o texto completo de um procedimento armazenado para um valor?

  • 772

Eu uso o script a seguir para pesquisar o texto de todos os procedimentos armazenados quando desejo encontrar valores específicos.

SELECT ROUTINE_NAME, ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE @searchText
ORDER BY ROUTINE_NAME   

Eu descobri recentemente que ROUTINE_DEFINITIONpara após 4.000 caracteres, então alguns procedimentos não estavam sendo retornados quando deveriam.

Como posso consultar o texto completo de um procedimento armazenado para um valor?

sql-server sql-server-2005
  • 4 4 respostas
  • 13913 Views

4 respostas

  • Voted
  1. gbn
    2013-05-09T06:54:49+08:002013-05-09T06:54:49+08:00

    Use um de

    • sys.sql_modules
    • Pesquisa SQL Red Gate (grátis!)
    • OBJECT_DEFINITION

    Nunca use

    • INFORMAÇÃO_ESQUEMA
    • sys.syscomentários
    • 7
  2. Best Answer
    RoKa
    2013-05-09T07:00:40+08:002013-05-09T07:00:40+08:00

    Do BOL, em INFORMATION_SCHEMA.ROUTINES:

    Nome da coluna: ROUTINE_DEFINITION
    Tipo de dados: nvarchar(4000)
    Descrição: Retorna os primeiros 4.000 caracteres do texto de definição da função ou procedimento armazenado se a função ou procedimento armazenado não estiver criptografado. Caso contrário, retorna NULL. Para garantir a obtenção da definição completa, consulte a função OBJECT_DEFINITION ou a coluna de definição na exibição do catálogo sys.sql_modules .

    Portanto, você pode visualizar o restante alterando seu script da seguinte maneira:

    SELECT 
        ROUTINE_NAME, 
        ROUTINE_TYPE, 
        ROUTINE_DEFINITION as First4000, 
        OBJECT_DEFINITION(object_id(ROUTINE_NAME)) as FullDefinition
    FROM 
        INFORMATION_SCHEMA.ROUTINES
    WHERE 
        OBJECT_DEFINITION(object_id(ROUTINE_NAME)) LIKE @searchText
    ORDER BY 
        ROUTINE_NAME
    

    A coluna com alias acima como FullDefinitionretornará o restante do conteúdo como nvarchar(max).

    • 6
  3. user27332
    2013-08-22T06:31:09+08:002013-08-22T06:31:09+08:00
    SELECT name
    FROM   sys.procedures
    WHERE  Object_definition(object_id) LIKE ‘%strHell%’ 
    

    Para obter mais detalhes, consulte minha postagem no blog: Como pesquisar um texto em Stored Procedure, Trigger, Function ou View

    • -1
  4. user92813
    2016-04-23T03:56:35+08:002016-04-23T03:56:35+08:00
    SELECT name 
    FROM sys.all_objects 
    WHERE  Object_definition(object_id) LIKE '%text%' 
    ORDER BY name
    
    • -3

relate perguntas

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

  • Downgrade do SQL Server 2008 para 2005

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve