none
Alterar tamanho da coluna via TSql... RRS feed

  • Pergunta

  • Olá a todos.

     

    Preciso alterar o tamanho de uma coluna via TSql, e não posso fazê-lo pelo ALTER COLUMN, pois existem campos relacionados.

     

    Existe alguma Stored Procedure do SQL que altere o tamanho de todos as colunas relacionadas, da mesma forma que acontece quando alteramos via Enterprise Manager.

     

    Caso tenha ficado alguma dúvida:

     

    Tenho a coluna TBL_TABELA1.COLUNA1 varchar(10)

    Tenho a coluna TBL_TABELA2.COLUNA1 varchar(10) relacionado com a TABELA1.COLUNA1

    Tenho a coluna TBL_TABELA3.COLUNA1 varchar(10) relacionado com a TABELA1.COLUNA1

     

    Quero usar um comando para alterar o tamanho da TABELA1.COLUNA1 de 10 para 20 e automaticamente alterar o tamanho da TABELA2.COLUNA1 e TABELA3.COLUNA1 para 20 também.

     

    E ai, podem me ajudar?

    quarta-feira, 22 de agosto de 2007 18:06

Todas as Respostas

  •  

    nao e a mesma coisa, se vc. observar o script que o EM gera ele vai drpar as tabelas criar uma temporaria recriar com o acampo alterado alimentar e depois renomear a antiga, assim em TSQL direto nao tem como fazer so pelo EM mesmo. agora se quizer fazer o que o EM faz, e muito mais simples vc. copiar o script que o EM gera e rodar no query analiser.

     

    qualquer coisa retorne.

    quarta-feira, 22 de agosto de 2007 18:08
  • Hmmm... que chato hein...

     

    E será que não existe alguma alma caridosa que criou uma Stored Procedure que faça isso automaticamente?

     

    Obrigado.

    quarta-feira, 22 de agosto de 2007 18:15
  • Olá Jônatas1,

    você pode usar a sql  

    alter table TBL_TABELA2 alter column [COLUNA1] varchar(20) not null;
    alter table TBL_TABELA3 alter column [COLUNA1] varchar(20) not null;
    alter table TBL_TABELA1 alter column [COLUNA1] varchar(20) not null;

    talvez você precise dar um drop nas referencias entre as tabelas antes de alterar o nome

    alter table TBL_TABELA1 drop constraint <nome_da_constraint>

    OBS.: o "alter column" funciona perfeitamente o Sql Server 2008, não posso afirmar se funciona nas versões anteriores.

    espero ter ajudado,
    abç
    quinta-feira, 12 de março de 2009 21:02
  • Olá,

    Você pode usar o script do Gustavo http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!177.entry para criar scripts de drop e create para as constraints desta tabela e poder reealizar a devida alteração.

    Seria +- nesta ordem:

    1. Gerar script de drop e create constraint
    2. Executar script de drop constraint
    3. Alterar coluna da tabela
    4. Executar script de create constraint.

    Abraços

    Demétrio Silva
    sexta-feira, 13 de março de 2009 12:15