Este artículo presenta 4 formas de usar T-SQL para obtener la definición de una vista en SQL Server.

La definición de vista es la instrucción T-SQL utilizada para crear la vista.

ejemplo 1 – el sys.Sql_modules system Catalog View

La sys.sql_modules system catalog view devuelve una fila para cada objeto que es un módulo definido por el lenguaje SQL en SQL Server.,

En otras palabras, puede usar esta vista para devolver información sobre objetos de varios tipos, incluidas funciones, procedimientos almacenados y, por supuesto, vistas.

una de las columnas devueltas con esta vista se llama definition. Como su nombre indica, esto devuelve la definición del objeto.

SELECT definitionFROM sys.sql_modulesWHERE object_id = object_id('Website.Customers');

resultado:

utilicé una interfaz de línea de comandos (CLI) con este ejemplo, por lo que el resultado está muy bien formateado.,

Si utiliza una interfaz gráfica de usuario (como SSMS o Azure Data Studio) para devolver los resultados en una cuadrícula, es probable que la definición se devuelva en una línea larga en una sola celda. En tales casos, tendrá que hacer un trabajo adicional si desea que se muestre en un formato más legible. Alternativamente, puede usar el método sp_helptext a continuación.

Ejemplo 2 – el procedimiento almacenado del sistema sp_helptext

otro método para devolver la definición de una vista es usar el procedimiento almacenado del sistemasp_helptext., Además de devolver la definición de una vista, también puede devolver la definición de una regla definida por el usuario, procedimiento almacenado T-SQL predeterminado, sin cifrar, función Transact-SQL definida por el usuario, disparador, columna calculada, restricción CHECK u objeto del sistema, como un procedimiento almacenado del sistema.

como se mencionó en el ejemplo anterior, este procedimiento almacenado muestra la definición de la vista en varias filas. Cada fila contiene 255 caracteres de la definición de T-SQL.,

ejemplo:

EXEC sp_helptext 'Website.Customers';

Este es el resultado que obtengo al usar una interfaz gráfica de usuario (Azure Data Studio):

y esto es lo que obtengo al usar mi interfaz de línea de comandos:

Esta vez los resultados se ven mejor al usar la interfaz gráfica de usuario.

Ejemplo 3-la función OBJECT_DEFINITION ()

otra forma de devolver la definición de una vista es usar la función OBJECT_DEFINITION(). Al igual que con los métodos anteriores, este método también puede devolver la definición de otros tipos de objetos.,

Este es un ejemplo de uso de esta función:

SELECT OBJECT_DEFINITION( OBJECT_ID('Website.Customers') ) AS ;

resultado:

Esta vez es más fácil de leer en mi CLI que en mi cuadrícula GUI.

Ejemplo 4-la vista System Information Schema View

la vista VIEWS system information schema view también puede devolver la definición de una vista. Una diferencia entre este método y los anteriores es que la vista de esquema de información VIEWS está limitada a solo vistas (como su nombre lo indica).

devuelve un montón de columnas, una de las cuales es la definición de la vista., Por lo tanto, podemos nombrar esa columna para devolver solo la definición:

SELECT VIEW_DEFINITIONFROM INFORMATION_SCHEMA.VIEWSWHERE TABLE_NAME = 'Customers';

resultado:

tenga en cuenta que la columna VIEW_DEFINITION en esta vista del sistema tiene una longitud máxima de nvarchar(4000). Para ver definiciones más grandes que esto, puede usar la función OBJECT_DEFINITION() en el ejemplo anterior.

el valor devuelto de OBJECT_DEFINITION() la función es nvarchar (max), por lo que no tiene la limitación de caracteres de la columna VIEW_DEFINITION (que como se mencionó, es nvarchar(4000)).