none
clonar tabela e todos os seus atributos (triggers, keys, constraints, indexes, statistics) RRS feed

  • Pergunta

  • Senhores, alguém saber como clonar uma tabela com além dos registros todos os seus atributos como triggers, Keys, constraints, indexes, statistics. Preciso fazer uma copia exata desta tabela na base com outro nome para manter um backup. Percebi que mesmo fazendo um import/export estas informações não são gravadas na tabela.


    Rodrigo

    quarta-feira, 5 de junho de 2013 13:58

Respostas

  • Alexandre, .. obrigado pela dica .. consegui gerando o script selecionando apenas a tabela, deixando o schema only e mudando o index para true, depois editei o script e adicionei o select distinct para fazer a copia da tabela em primeiro e abaixo o restante para criar os indexes e constaints - a tabela ficou igual a copiada!

    USE [DB_XXXX_TST]
    GO
    /****** Object:  Table [dbo].[XX003_PASSO1]    Script Date: 06/05/2013 11:43:51 ******/
    SELECT DISTINCT *
     INTO [dbo].[XX003_PASSO1]
     FROM [dbo].[XX003]
    GO
    SET ANSI_PADDING OFF
    GO
    CREATE UNIQUE NONCLUSTERED INDEX [XX003000] ON [dbo].[XX003_PASSO1]
    (
     [RECNUM] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    GO
    .
    .
    .continua ...

    /****** Object:  Default [DF__XX003__CD_ITEM__3E6C16AE]    Script Date: 06/05/2013 11:43:51 ******/
    ALTER TABLE [dbo].[XX003_PASSO1] ADD  DEFAULT ('') FOR [CD_ITEM]
    GO
    /****** Object:  Default [DF__XX003__DN_ITEM_I__3F603AE7]    Script Date: 06/05/2013 11:43:51 ******/
    ALTER TABLE [dbo].[XX003_PASSO1] ADD  DEFAULT ('') FOR [DN_ITEM_IND]
    GO
    .
    .
    .continua ...


    Rodrigo

    quarta-feira, 5 de junho de 2013 15:07

Todas as Respostas

  • Rodrigo, voce pode gerar o script de criação da sua tabela e aplicar na sua outra base, a partir dai só importar os registros da origem para esta base, porem se ela referenciar outras tabelas tendo dependencias as mesmas tem que existir com os dados no seu banco de copia.

    Alexandre Matayosi Conde Mauricio.

    quarta-feira, 5 de junho de 2013 14:23
  • Boa tarde Rodrigo, Alexandre uma dúvida ele não teria que fazer o backup individual dos outros objetos Trigger etc?

    Abração


    Wellinghton Pimentel Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.


    quarta-feira, 5 de junho de 2013 14:24
  • Alexandre, .. obrigado pela dica .. consegui gerando o script selecionando apenas a tabela, deixando o schema only e mudando o index para true, depois editei o script e adicionei o select distinct para fazer a copia da tabela em primeiro e abaixo o restante para criar os indexes e constaints - a tabela ficou igual a copiada!

    USE [DB_XXXX_TST]
    GO
    /****** Object:  Table [dbo].[XX003_PASSO1]    Script Date: 06/05/2013 11:43:51 ******/
    SELECT DISTINCT *
     INTO [dbo].[XX003_PASSO1]
     FROM [dbo].[XX003]
    GO
    SET ANSI_PADDING OFF
    GO
    CREATE UNIQUE NONCLUSTERED INDEX [XX003000] ON [dbo].[XX003_PASSO1]
    (
     [RECNUM] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    GO
    .
    .
    .continua ...

    /****** Object:  Default [DF__XX003__CD_ITEM__3E6C16AE]    Script Date: 06/05/2013 11:43:51 ******/
    ALTER TABLE [dbo].[XX003_PASSO1] ADD  DEFAULT ('') FOR [CD_ITEM]
    GO
    /****** Object:  Default [DF__XX003__DN_ITEM_I__3F603AE7]    Script Date: 06/05/2013 11:43:51 ******/
    ALTER TABLE [dbo].[XX003_PASSO1] ADD  DEFAULT ('') FOR [DN_ITEM_IND]
    GO
    .
    .
    .continua ...


    Rodrigo

    quarta-feira, 5 de junho de 2013 15:07