none
Procedure RRS feed

  • Pergunta

  • Boa tarde

    Preciso criar uma procedure que faça a criação de uma tabela com o nome que eu quiser.

    Exe; Executar a procedure e nela criar uma tabela com o nome JUCJAN2012

           toda vez que eu executar essa procdure eu poder criar nomes diferentes de tabela e depois nos comandos Select, poder usar esse mesmo nome criado

    Obrigado

    quinta-feira, 2 de agosto de 2012 22:59

Respostas

  • Gildo,

    Entendo a sua necessidade, mas queremos que você entenda que criar algo nessa estrutura pode ser perigosíssimo para o seu ambiente, tornando a administração, como o Roberson falou, caótico. Acho que existem formas para conseguir o que você almeja e que não vá impactar no teu ambiente negativamente.

    Posso dar uma sugestão? Crie uma tabela na estrutura que precisa e, nela, insira 1 coluna adicional, com o período em questão (e crie os índices corretos)

    Com isso, você consegue criar uma função que retorne uma tabela (passando o período por parâmetro) e então montar uma consulta que retorne o que você precisa, de forma dinâmica.

    Essa exigência de criar uma tabela por período é por causa da regra de negócio da empresa, por alguma aplicação? Pergunto pois, se for uma solicitação interna, existem argumentos que podem te ajudar a aplicar uma solução mais adequada e que não prejudique o teu ambiente.

    Espero ter te ajudado.

    []'s!

    • Marcado como Resposta gildo_santos segunda-feira, 6 de agosto de 2012 10:46
    sexta-feira, 3 de agosto de 2012 20:56

Todas as Respostas

  • Boa Noite,

    Usar uma SP que crie tabelas não costuma ser uma boa implementação.
    Há algo que esteja motivando esse tipo de arquitetura ?

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    sexta-feira, 3 de agosto de 2012 00:59
  • Sim

    Estou criando um procedimento para automatizar o processo de comparação de duas tabelas, mais todo mês são informação nova e preciso cirar tabelas diferentes.

    EX: mes de janeiro - CONTJAN2012

          mes de janeiro    SISTJAN2012

        mes de FEVEREIRO     CONTFEV2012

        mes de FEVEREIRO     SISTFEV2012

    E ASSIM POR DIANTE

    sexta-feira, 3 de agosto de 2012 10:38
  • Gildo..

    Concordo com o Gustavo, e acrescento à resposta dele.

    A criação de tabelas mensais e por "departamento" pode criar um cenário, de certa forma caótico, nada interessante em um banco de dados.

    Talvez a criação de uma tabela por "departamento" com um campo identificando a data da informação seja uma melhor prática.

    Por falar em "melhor prática" o Gustavo poderia guiar-nos melhor.

    Abraço !


    Não esqueça de marcar o post como útil caso tenha te ajudado.

    sexta-feira, 3 de agosto de 2012 11:36
  • Eu concordo com vocês, mais esse meu problema é para simples analise de relatporio da contabilidade e do sistema, não vou usar em modo produção.. é so para analisar relatorio em excel que eu faço a importação para o sql server

    Grato

    sexta-feira, 3 de agosto de 2012 13:43
  • gildo_santos,

    Se você só precisa dessa tabela durante a execução de sua procedure, por que não usar uma variável table?

    Assim você pode preenche-la e ela não existirá no banco, somente no contexto de sua procedure.

    Abs!


    Alexsandre Rodrigues de Almeida - MCTS .NET Framework - Web Applications
    E-mail: alexsandrer@gmail.com
    Twitter: @AlexRAlmeida

    sexta-feira, 3 de agosto de 2012 15:25
  • Preciso que realmente fique dentro do banco .

    Preciso criar uma tabela com o nome que eu vou digitar e depois ela ser criado no banco e vai armazenar valores que são importado do excel

    grato,

    sexta-feira, 3 de agosto de 2012 18:12
  • Gildo,

    Entendo a sua necessidade, mas queremos que você entenda que criar algo nessa estrutura pode ser perigosíssimo para o seu ambiente, tornando a administração, como o Roberson falou, caótico. Acho que existem formas para conseguir o que você almeja e que não vá impactar no teu ambiente negativamente.

    Posso dar uma sugestão? Crie uma tabela na estrutura que precisa e, nela, insira 1 coluna adicional, com o período em questão (e crie os índices corretos)

    Com isso, você consegue criar uma função que retorne uma tabela (passando o período por parâmetro) e então montar uma consulta que retorne o que você precisa, de forma dinâmica.

    Essa exigência de criar uma tabela por período é por causa da regra de negócio da empresa, por alguma aplicação? Pergunto pois, se for uma solicitação interna, existem argumentos que podem te ajudar a aplicar uma solução mais adequada e que não prejudique o teu ambiente.

    Espero ter te ajudado.

    []'s!

    • Marcado como Resposta gildo_santos segunda-feira, 6 de agosto de 2012 10:46
    sexta-feira, 3 de agosto de 2012 20:56
  • Faço minhas as palavras do Logan.

    Abraço !


    Não esqueça de marcar o post como útil caso tenha te ajudado.

    sábado, 4 de agosto de 2012 11:25
  • Boa tarde

    Preciso criar uma procedure que faça a criação de uma tabela com o nome que eu quiser.

    Exe; Executar a procedure e nela criar uma tabela com o nome JUCJAN2012

           toda vez que eu executar essa procdure eu poder criar nomes diferentes de tabela e depois nos comandos Select, poder usar esse mesmo nome criado

    Obrigado

    Olá Uma forma de ser fazer isso poderia ser atravez da SQL abaixo:

    IF (SELECT COUNT(*) FROM BANCO.sys.tables WHERE name = 'NOME_TABELA') = 0

    BEGIN
    CREATE TABLE NOME_TABELA(
    campo1 INT,
    campo2 VARCHAR(16),
    campo3 DATETIME,
    campo4 INT,
    campo5 VARCHAR(10),
    campo6 NUMERIC(12,2),

    END

    Onde o nome da tabela você passa como parâmetro na procedure.

    • Sugerido como Resposta João Flávio85 terça-feira, 7 de agosto de 2012 14:12
    terça-feira, 7 de agosto de 2012 14:11