Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Existe uma maneira de recuperar a definição de exibição de um SQL Server usando ADO simples?


Qual versão do SQL Server?

Para o SQL Server 2005 e posterior, você pode obter o script SQL usado para criar a exibição assim:
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'

Isso retorna uma única linha contendo o script usado para criar/alterar a exibição.

Outras colunas na tabela informam sobre as opções em vigor no momento em que a exibição foi compilada.

Advertências

  • Se a exibição foi modificada pela última vez com ALTER VIEW, o script será uma instrução ALTER VIEW em vez de uma instrução CREATE VIEW.

  • O script reflete o nome como foi criado. A única vez que ele é atualizado é se você executar ALTER VIEW ou descartar e recriar a visualização com CREATE VIEW. Se a visualização foi renomeada (por exemplo, via sp_rename ) ou a propriedade foi transferida para um esquema diferente, o script que você receber de volta refletirá a instrução CREATE/ALTER VIEW original:ela não refletirá o nome atual do objeto.

  • Algumas ferramentas truncam a saída. Por exemplo, a ferramenta de linha de comando MS-SQL sqlcmd.exe trunca os dados em 255 caracteres. Você pode passar o parâmetro -y N para obter o resultado com N caracteres.