este artigo apresenta 4 maneiras de usar T-SQL para obter a definição de uma vista no servidor SQL.
A definição de vista é a declaração T-SQL usada para criar a janela.
exemplo 1-o sistema.Sql_ modules System Catalog View
The sys.sql_modules
system catalog view returns a row for each object that is an SQL language-defined module in SQL Server.,
em outras palavras, você pode usar esta vista para devolver informações sobre objetos de vários tipos, incluindo funções, procedimentos armazenados e, claro, vistas.
uma das colunas devolvidas com esta vista é chamada de definition
. Como o nome indica, isto retorna a definição do objeto.
SELECT definitionFROM sys.sql_modulesWHERE object_id = object_id('Website.Customers');
resultado:
I usei uma interface de linha de comando (CLI) com este exemplo, por isso o resultado está bem formatado.,
Se utilizar uma interface gráfica (como o SSMS ou o Azure Data Studio) para devolver os resultados numa grelha, a definição será provavelmente devolvida numa longa linha numa única célula. Em tais casos você precisará fazer algum trabalho extra se você quiser que ele seja exibido em um formato mais legível. Alternativamente, você pode usar o método sp_helptext
abaixo.
Exemplo 2-o procedimento armazenado no sistema sp_helptext
outro método de devolver a definição de uma vista é usar o procedimento armazenado no sistema
sistema armazenado., Além de retornar a definição para uma vista, ele também pode retornar a definição de uma regra definida pelo usuário, padrão, procedimento não criptografado T-SQL armazenado, função Transact-SQL definida pelo Usuário, gatilho, coluna computada, CHECK
restrição, ou objeto de sistema, como um procedimento armazenado no sistema.
Como mencionado no exemplo anterior, este procedimento armazenado mostra a definição da janela em várias linhas. Cada linha contém 255 caracteres da definição T-SQL.,
Exemplo:
EXEC sp_helptext 'Website.Customers';
Aqui está o resultado que eu tenho quando através de uma GUI (Azure Data Studio):
E aqui está o que eu recebo usando a minha interface de linha de comando:
Neste momento, os resultados têm melhor aparência quando em usar a GUI.
Example 3-The OBJECT_DEFINITION() Function
Another way to return a view’s definition is to use the OBJECT_DEFINITION()
function. Como com os métodos anteriores, este método também pode retornar a definição de outros tipos de objetos.,
aqui está um exemplo de usar esta função:
SELECT OBJECT_DEFINITION( OBJECT_ID('Website.Customers') ) AS ;
resultado:
desta vez é mais fácil de ler no meu CLI do que na minha grelha GUI.
exemplo 4 – o esquema de Informação do sistema de vistas ver
o VIEWS
o esquema de Informação do sistema também pode devolver a definição de uma vista. Uma diferença entre este método e os anteriores é que, o VIEWS
information schema view está limitado a apenas visualizações (como o nome implica).
devolve um conjunto de colunas, uma das quais é a definição da janela., Portanto, podemos de nome de coluna para retornar apenas a definição de:
SELECT VIEW_DEFINITIONFROM INFORMATION_SCHEMA.VIEWSWHERE TABLE_NAME = 'Customers';
Resultado:
Note que o VIEW_DEFINITION
coluna neste vista do sistema tem um comprimento máximo de nvarchar(4000). Para definições de visualização maiores do que isso, você pode usar a função OBJECT_DEFINITION()
no exemplo anterior.
O valor de retorno de OBJECT_DEFINITION()
função é nvarchar(max), então ele não tem a limitação de caracteres de VIEW_DEFINITION
coluna (que, como mencionado, é nvarchar(4000)).
Deixe uma resposta