CRIAR CAMPO NO MEIO DE UMA TABELA NO SQL SERVER

JCM0867 10/12/2016 20:06:43
#469585
Olá Pessoal,
Tem algum comando no SQL Server para dizer a posição que quero Criar um novo campo?

Por ex. Tenho uma Tabela com 5 Campos numa tabela existente e vou inserir um novo campo na posição 3

Campo1
Campo2
[txt-color=#0000f0]Novo Campo[/txt-color]
Campo3
Campo4
Campo5

Sei que dá para fazer uma tabela temporária com a posição do novo campo,
Só que tem que criar várias linas de códigos para fazer isso
Tem algo mais automático ou comando do SQL que faz isso?

O Comando ADD so cria campo no final da tabela

Grato
XLEGENDARY 10/12/2016 22:01:56
#469586
A resposta é sim existe, vale a pena? Nao
Vc irá ter que criar monte de comandos add, rename, Drop etc.

O mysql se bem me lembro existe o after.
Create table bla bla bla after bla bla bla
JCM0867 10/12/2016 22:30:06
#469588
Citação:

:
A resposta é sim existe, vale a pena? Nao
Vc irá ter que criar monte de comandos add, rename, Drop etc.

O mysql se bem me lembro existe o after.
Create table bla bla bla after bla bla bla



Isso eu sei
Por isso perguntei se existe um comando único que faz isso
Mas parece que não tem uma query que faz isso como no mysql
KERPLUNK 11/12/2016 10:38:49
#469597
Bem, o caso é que a ordem dos campos importa muito pouco, ou quase nada. Se você deseja, por algum motivo qualquer, selecionar os registros com campos em ordem diferente, você pode muito bem fazer isso na query:

Select codigo, nome from clientes

ou

Select nome, codigo from clientes


Teria algum motivo especial para precisar disso?
DS2T 11/12/2016 11:37:58
#469599
O SQL Server não faz isso. E quando você vai no Management Studio e insere uma coluna no meio, o Management Studio recria sua tabela e apaga a antiga.
JCM0867 11/12/2016 11:58:05
#469603
Citação:

:
Bem, o caso é que a ordem dos campos importa muito pouco, ou quase nada. Se você deseja, por algum motivo qualquer, selecionar os registros com campos em ordem diferente, você pode muito bem fazer isso na query:


Select codigo, nome from clientes

ou

Select nome, codigo from clientes


Teria algum motivo especial para precisar disso?



Seria uma questão de manutenção do Banco, imagine uma tabela com 150 campos, os campos respeitando uma certa ordem para melhor visualização.
Eu vejo assim nesse exemplo
Codigo
Nome
Endereço
Telefone
...Mais um tripa de campos nada haver com endereço...

Aí depois de um tempo lembro que faltou o campo cidade
Tenho um programinha que coloca esse campo na tabela via código
Ele coloca o campo cidade lá no final da tabela.
Só que futuramente numa manutenção não sei onde esta o campo cidade e se foi colocado na tabela, a não ser que varra toda a tabela para verificar a existencia do campo.
Se ele ficar junto o [Ô]Codigo, Nome, Endereço, [txt-color=#0000f0]Cidade[/txt-color], Telefone.....[Ô] fica mais fácil

Para o funcionamento do sistema, sei que isso não importa


TRTNCG 11/12/2016 12:50:35
#469606
Olha também não vejo importância nenhuma nas ordens do campo, na verdade isso é irrelevante para um sistema.
TRTNCG 11/12/2016 12:54:15
#469607
Citação:

:
O SQL Server não faz isso. E quando você vai no Management Studio e insere uma coluna no meio, o Management Studio recria sua tabela e apaga a antiga.



De fato vou verificar isso, mas, acredito que ele não dá um DROP e um ALTER fato este confirmado porque ele não apaga os dados contido na tabela.
DS2T 11/12/2016 13:40:19
#469614
Citação:

De fato vou verificar isso, mas, acredito que ele não dá um DROP e um ALTER fato este confirmado porque ele não apaga os dados contido na tabela.



Ele cria a tabela;
Cria todos os índices e chaves estrangeiras;
Joga todos os dados para essa nova tabela;
Apaga a tabela antiga;
Renomeia a nova;
Tópico encerrado , respostas não são mais permitidas