CRIAR CAMPO NO MEIO DE UMA TABELA NO SQL SERVER
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
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
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
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
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
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:
Teria algum motivo especial para precisar disso?
Select codigo, nome from clientes
ou
Select nome, codigo from clientes
Teria algum motivo especial para precisar disso?
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.
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
Olha também não vejo importância nenhuma nas ordens do campo, na verdade isso é irrelevante para um sistema.
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.
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