adicionar campos na tabela

05/12/2013

0

quais os impactos negativos em adicionar campos em uma tabela? e como faço para deixar um valor default nesse campo?
Roniere Almeida

Roniere Almeida

Responder

Posts

06/12/2013

Fabiano Carvalho

ALTER TABLE [SUA_TABELA] ADD DIA_ATUAL DATETIME DEFAULT GETDATE()
Deve-se adicionar campos somente quando o mesmo não estiver em utilização, por segurança.
Responder

06/12/2013

Alex Lekao

Oi Roniere, bom dia!!!

So complementando o que o Fabiano disse.

Nesse caso do campo com valores default, caso seja necessario vc pode usar a opcao persistence ou persistente, nao lembro a escrita, para que o campo so seja calculado(atualizado) somente quando houver alteracao nos campos que originarem esse campo calculado, caso contrario ele permanecera inalterado e com isso nao causa impacto no desempenho da aplicacao, relatorio, ou o que for qdo for fazer uso do campo, embora acredito que esse impacto na perfomance seja pequeno, com algumas excecoes.

Abraco.
Responder

06/12/2013

Roniere Almeida

ALTER TABLE [SUA_TABELA] ADD DIA_ATUAL DATETIME DEFAULT GETDATE()
Deve-se adicionar campos somente quando o mesmo não estiver em utilização, por segurança.


esse GETDATE() insere a data atual não é?

um outra pergunta, caso eu queira colocar um campo, tipo, carteira de trabalho(CTPS) e desejo colocar o valor default somente 0000000(exemplo).
Responder

06/12/2013

Roniere Almeida

Oi Roniere, bom dia!!!

So complementando o que o Fabiano disse.

Nesse caso do campo com valores default, caso seja necessario vc pode usar a opcao persistence ou persistente, nao lembro a escrita, para que o campo so seja calculado(atualizado) somente quando houver alteracao nos campos que originarem esse campo calculado, caso contrario ele permanecera inalterado e com isso nao causa impacto no desempenho da aplicacao, relatorio, ou o que for qdo for fazer uso do campo, embora acredito que esse impacto na perfomance seja pequeno, com algumas excecoes.

Abraco.


poderia colocar um exemplo Alex, a tabela antes e depois da alteração.
obrigado.
Responder

06/12/2013

Jefferson Santos

ALTER TABLE [SUA_TABELA] ADD DIA_ATUAL DATETIME DEFAULT GETDATE()
Deve-se adicionar campos somente quando o mesmo não estiver em utilização, por segurança.


esse GETDATE() insere a data atual não é?

um outra pergunta, caso eu queira colocar um campo, tipo, carteira de trabalho(CTPS) e desejo colocar o valor default somente 0000000(exemplo).


Getdate() - Data Atual
Campo Default - Você escolhe o valor padrão
Responder

06/12/2013

Alex Lekao

ALTER TABLE [SUA_TABELA] ADD DIA_ATUAL DATETIME DEFAULT GETDATE()
Deve-se adicionar campos somente quando o mesmo não estiver em utilização, por segurança.


esse GETDATE() insere a data atual não é?

um outra pergunta, caso eu queira colocar um campo, tipo, carteira de trabalho(CTPS) e desejo colocar o valor default somente 0000000(exemplo).


eh possivel sim, apenas coloque no lugar do getdate() o valor que quer q fique no campo, no caso os 0000000.
Responder

06/12/2013

Alex Lekao

Oi Roniere, bom dia!!!

So complementando o que o Fabiano disse.

Nesse caso do campo com valores default, caso seja necessario vc pode usar a opcao persistence ou persistente, nao lembro a escrita, para que o campo so seja calculado(atualizado) somente quando houver alteracao nos campos que originarem esse campo calculado, caso contrario ele permanecera inalterado e com isso nao causa impacto no desempenho da aplicacao, relatorio, ou o que for qdo for fazer uso do campo, embora acredito que esse impacto na perfomance seja pequeno, com algumas excecoes.

Abraco.


poderia colocar um exemplo Alex, a tabela antes e depois da alteração.
obrigado.


Ola Roniere,

Vou colocar um Codigo Aqui parecido com o que usamos aqui no ERP da empresa.

/* Sem o Campo*/
CREATE TABLE Produto(
	CodFilial varchar(3) NULL,
	CodProduto varchar(6) NULL,
	CodGrupo varchar(6) NULL,
	CodEAN varchar(15) NULL,
	NumFabrica varchar(25) NULL,
	Descricao varchar(60) NULL,
	CodFabrica varchar(30) NULL,
	UN varchar(2) NULL,
	Local1 varchar(10) NULL,
	Local2 varchar(10) NULL,
	Estoque numeric(12, 3) NULL,
	EstGarantia numeric(12, 3) NULL,
) 


/* Criando o Campo na Tabela*/
Alter Table Produto Add SaldoEstDisponivel As (Estoque-EstGarantia) Persisted;



/* Criando o Campo Apenas com Valore Padrao Zero */
Alter Table Produto Add SaldoEstDisponivel Numeric(12,3) Default (0.000);


/* Tabela com o Campo */
CREATE TABLE Produto(
	CodFilial varchar(3) NULL,
	CodProduto varchar(6) NULL,
	CodGrupo varchar(6) NULL,
	CodEAN varchar(15) NULL,
	NumFabrica varchar(25) NULL,
	Descricao varchar(60) NULL,
	CodFabrica varchar(30) NULL,
	UN varchar(2) NULL,
	Local1 varchar(10) NULL,
	Local2 varchar(10) NULL,
	Estoque numeric(12, 3) NULL,
	EstGarantia numeric(12, 3) NULL,
	SaldoEstDisponivel  AS (Estoque-EstGarantia) PERSISTED
) 


Responder

06/12/2013

Roniere Almeida

perfeito Alex, agora da uma sacada bem no codigo. obrigado.
Responder

06/12/2013

Alex Lekao

perfeito Alex, agora da uma sacada bem no codigo. obrigado.


de nada... Roniere... rssr

so percebi agora que faltou o codigo com o campo Default.... rsrsrsr

Mas se ajudou, maravilha... rssr

Abraco.

Alex - Lekao
Responder

06/12/2013

Roniere Almeida

ajudou, mas posta aew com o codigo.
Responder

07/12/2013

Alex Lekao

Segue:

CREATE TABLE Produto(
	CodFilial varchar(3) NULL,
	CodProduto varchar(6) NULL,
	CodGrupo varchar(6) NULL,
	CodEAN varchar(15) NULL,
	NumFabrica varchar(25) NULL,
	Descricao varchar(60) NULL,
	CodFabrica varchar(30) NULL,
	UN varchar(2) NULL,
	Local1 varchar(10) NULL,
	Local2 varchar(10) NULL,
	Estoque numeric(12, 3) NULL,
	EstGarantia numeric(12, 3) NULL,
	SaldoEstDisponivel numeric(12, 3) NULL Default (0.000)
) 
Responder

07/12/2013

Roniere Almeida

obrigado, mais uma vez Alex.
Responder

09/12/2013

Alex Lekao

disponha...

precisando eh so falar.
Responder

09/12/2013

Isaac Jose

Segue:

CREATE TABLE Produto(
	CodFilial varchar(3) NULL,
	CodProduto varchar(6) NULL,
	CodGrupo varchar(6) NULL,
	CodEAN varchar(15) NULL,
	NumFabrica varchar(25) NULL,
	Descricao varchar(60) NULL,
	CodFabrica varchar(30) NULL,
	UN varchar(2) NULL,
	Local1 varchar(10) NULL,
	Local2 varchar(10) NULL,
	Estoque numeric(12, 3) NULL,
	EstGarantia numeric(12, 3) NULL,
	SaldoEstDisponivel numeric(12, 3) NULL Default (0.000)
) 



boa tarde a todos. :) Lekao se sei se utiliza essa tabela ou alguma parecida no dia a dia..
bom se me permite vou bagunçar ela um pouco :)

CREATE TABLE Produto(
BintCodFilial bigint NULL,
IntCodProduto int NULL,
IntCodGrupo int NULL,
NumCodEAN numeric NULL,
VcharNumFabrica varchar(25) NULL,
VcharDescricao varchar(60) NULL,
NumCodFabrica NULL,
VcharUN varchar(2) NULL,
VcharLocal1 varchar(10) NULL,
VcharLocal2 varchar(10) NULL,
NumEstoque numeric(12, 3) NULL,
NumEstGarantia numeric(12, 3) NULL,
NumSaldoEstDisponivel numeric(12, 3) NULL Default (0.000)
)

Vi que vc tem campos de codigo e atribui valores varchar. isso como elementos de busca prejudica e muito no desempenho das aplicações,
atualizações etc por isso se forem campo numericos sugiro que os criem assim :)

agora o que vc deve estar se perguntando.porque ele afrescalhei o nome dos campos :)
e eu lhe respondo digamos que no dia a dia vc faz muitas consultas em muitas tabelas diferentes ou que essas tabelas é de uso de muitas pessoas.

de cara qualquer um vai saber o valor dos campos sem precisar verificar com sp_helptext ou algo parecido :)
com isso a uma ganho de tempo e de estetica criando assim um certo padrão :)

ate mais e espero ter ajudado ou ao menos nao ter atrapalhado o post ...
Responder

09/12/2013

Jefferson Santos

Corretíssimo o Issac a hora em que se vai criar uma tabela deve se atentar a estes detalhes.
Eu utilizo o i na frente das colunas int e s para varchar o que já me ajuda e muito na hora de procurar um dado no SQL.
Fora que não é só eu que utilizo o banco.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar