none
Como faço para copiar uma view que já existe para outra base de dados? RRS feed

  • Pergunta

  • Estou tentando realizar um create em uma view para um base diferente da que ela está, porém não está dando certo.

    Código da minha view:

    terça-feira, 3 de dezembro de 2019 14:25

Todas as Respostas

  • Checou se exite a tabela AUTOMATECONSTRUCTS, no banco a qual está tentando criar a VIEW ?
    terça-feira, 3 de dezembro de 2019 14:29
  • Não, ela não existe. Porém, tentei recriar a tabela também e apareceu o seguinte erro:

    Msg 2809, Level 18, State 1, Line 11
    The request for procedure 'automateconstructs' failed because 'automateconstructs' is a table object.

    terça-feira, 3 de dezembro de 2019 14:40
  • Não, ela não existe. Porém, tentei recriar a tabela também e apareceu o seguinte erro:

    Msg 2809, Level 18, State 1, Line 11
    The request for procedure 'automateconstructs' failed because 'automateconstructs' is a table object.

    Qual foi o código que vc utilizou para criar a tabela ?

    Vc precisa primeiro criar a tabela automateconstructs e posteriormente criar a View.

    terça-feira, 3 de dezembro de 2019 14:43
  • Estou tentando realizar um create em uma view para um base diferente da que ela está, porém não está dando certo.

    A mensagem de erro informa que não existe a tabela AUTOMATECONSTRUCTS no banco de dados em uso.

    Se o objetivo é que uma visão no banco de dados em uso acesse tabela que está em outro banco de dados da mesma instância, você deve informar o nome do outro banco de dados, do esquema e da tabela. Algo assim:

    -- código #1
    USE banco_1;
    go

    CREATE VIEW dbo.nome_visão as SELECT T.colunas from outrobancobanco.dbo.nomedatabela where ...; go

        



    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz terça-feira, 3 de dezembro de 2019 16:57
    • Sugerido como Resposta José Diz quarta-feira, 4 de dezembro de 2019 16:45
    terça-feira, 3 de dezembro de 2019 15:01
  • Como faço para copiar uma view que já existe para outra base de dados?

    Essa visão que pretende criar em "outra base de dados" deve acessar tabela em qual banco de dados: "banco de dados original" ou "outra base de dados"?

    -- código #2
    USE outrabasededados;
    go

    CREATE VIEW dbo.nome_visão as
    SELECT T.colunas
      from dbo.nomedatabela
      where ...;
    go


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz terça-feira, 3 de dezembro de 2019 15:28
    terça-feira, 3 de dezembro de 2019 15:27
  • Ana,

    Se a View que você deseja criar terá que buscar, consultar e apresentar dados oriundos de outra base de dados, basta você especificar no código fonte da View o comando completo para acesso ao objeto, por exemplo:

    Create View [dbo].[VW_Agents]
    As
    Select Rank() Over(Order By ResourceName) AS ID_Agent,
           ResourceId,
           ResourceName As Agent,
    From NomedoBancodeDados.NomedoSchema.AutomateConstructs (NoLock)
    Where ResourceType = 8
    Go
    Utilizei o seu exemplo postado no primeiro post para elaborar este outro, vale ressaltar que o usuário que for executar esta View deverá ter acesso tanto ao banco de dados como também a própria tabela.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Sugerido como Resposta IgorFKModerator quarta-feira, 4 de dezembro de 2019 13:21
    terça-feira, 3 de dezembro de 2019 18:31