sql >> Base de Datos >  >> RDS >> Sqlserver

¿Hay alguna forma de recuperar la definición de vista de un servidor SQL usando ADO simple?

¿Qué versión de SQL Server?

Para SQL Server 2005 y versiones posteriores, puede obtener el script SQL utilizado para crear la vista de esta manera:

select definition
from sys.objects     o
join sys.sql_modules m on m.object_id = o.object_id
where o.object_id = object_id( 'dbo.MyView')
  and o.type      = 'V'

Esto devuelve una única fila que contiene el script utilizado para crear/modificar la vista.

Otras columnas de la tabla informan sobre las opciones existentes en el momento en que se compiló la vista.

Advertencias

  • Si la vista se modificó por última vez con ALTER VIEW, entonces el script será una declaración ALTER VIEW en lugar de una declaración CREATE VIEW.

  • El script refleja el nombre tal como se creó. La única vez que se actualiza es si ejecuta ALTER VIEW o suelta y vuelve a crear la vista con CREATE VIEW. Si se ha cambiado el nombre de la vista (por ejemplo, a través de sp_rename ) o la propiedad se transfirió a un esquema diferente, la secuencia de comandos que obtenga reflejará la instrucción CREATE/ALTER VIEW original:no reflejará el nombre actual de los objetos.

  • Algunas herramientas truncan la salida. Por ejemplo, la herramienta de línea de comandos de MS-SQL sqlcmd.exe trunca los datos en 255 caracteres. Puede pasar el parámetro -y N para obtener el resultado con N caracteres.