Jump to content

Archived

This topic is now archived and is closed to further replies.

fsilvarib

Auto Incremento

Recommended Posts

Ola tudo bom pessoal?

 

Antes de tudo eu já busquei no forúm e o que eu achei não entendi nada.

 

Gostaria de saber como é que faço para criar uma tabela que tenha AUTO INCREMENTO.

 

Eu criei essa tabela abaixo:

CREATE TABLE dbo.Table_1	(	id int NOT NULL,	nome varchar(50) NULL,	endereco varchar(255) NULL,	telefone char(14) NULL	)  ON [PRIMARY]

Como é que eu faço para que a coluna ID tenha AUTO INCREMENTO?

 

Valeu até mais.

Share this post


Link to post
Share on other sites

no sql 2000 era só colocar identity

 

testai:

CREATE TABLE dbo.Table_1	(	id int NOT NULL identity,	nome varchar(50) NULL,	endereco varchar(255) NULL,	telefone char(14) NULL	)  ON [PRIMARY]

Share this post


Link to post
Share on other sites

Pelo que entendi voce esta querendo que o campo Id,no SQL server Express,seja auto incrmento ,faça o seguinte:

 

caso ja tenha criado a tabela,clique com o direito na table em "Modify"... ele ira abrir a tabela ao lado,selecione o campo ID,e logo abaixo vera as propriedades dele,

voce verá o campo "Identity Specification" selecione "Yes",ele habilitara as duas linhas de baixo,e a primeira opção é o auto incrmento ,onde você determina de quanto em quanto o campo vai incrementar.

 

ao criar a tabela ele tambem trará a janela da mesma forma...

Share this post


Link to post
Share on other sites

Olá Amigos, estou com um problema, Gostaria de saber se tem como, ao adicionar valores numa tabela, sempre incrementar num campo valor sequencial, sendo que a minha tabela tem um campo IdCanalVendas que é auto incremento e gostaria de adicionar outro campo com valores sequenciais IdImagens, no qual poderia ter a mesma numeração do IdCanalVendas.

 

Alguem saberia resolver esse problema ?

Share this post


Link to post
Share on other sites

Gostaria de saber se tem como deixar dois campos auto increment numa mesma tabela e se nao tiver, como poderia fazer isso via codigo c#, podendo deixar os valores das tuas tabelas iguais.

Share this post


Link to post
Share on other sites

Gostaria de saber se tem como deixar dois campos auto increment numa mesma tabela e se nao tiver, como poderia fazer isso via codigo c#, podendo deixar os valores das tuas tabelas iguais.

Share this post


Link to post
Share on other sites

Gostaria de saber se tem como deixar dois campos auto increment numa mesma tabela e se nao tiver, como poderia fazer isso via codigo c#, podendo deixar os valores das tuas tabelas iguais.

Numa tabela SQL só pode haver 1 campo com autoincrement. O que se pode fazer é uma proc que faça essa parte de autoincrementar.

Share this post


Link to post
Share on other sites

Sim, so pode haver um auto incremental, mas um campo pode ser uma cópia do outro, ou melhor, ele pode conter os dados de um outro, não é mesmo? Assim pode-se criar um campo que tenha os mesmos dados do auto incremental, ou estou enganado?

Share this post


Link to post
Share on other sites

OFF Topic... O tópico que nunca morre...

 

original de nov/2006

desenterraram em nov/2008

desenterraram novamente em jun/2009

e mais uma vez surgindo dos mortos em mai/2010

 

brincandeiras a parte, acho muito estranho ter dois campos increment em uma só tabela, creio que talvez seja melhor rever o MER

 

abs

Share this post


Link to post
Share on other sites

Teria como colocar um auto increment com uma letra na frente por exemplo ? (E0001, E0002)

 

no, pelo menos é o que o msdn diz:

 

When you use the IDENTITY property to define an identifier column, consider the following:

 

* A table can have only one column defined with the IDENTITY property, and that column must be defined by using a decimal, int, numeric, smallint, bigint, or tinyint data type.

* The seed and increment can be specified. The default value for both is 1.

* The identifier column must not allow for null values and must not contain a DEFAULT definition or object.

* The column can be referenced in a select list by using the $IDENTITY keyword after the IDENTITY property has been set. The column can also be referenced by name.

* The OBJECTPROPERTY function can be used to determine whether a table has an IDENTITY column, and the COLUMNPROPERTY function can be used to determine the name of the IDENTITY column.

* SET IDENTITY_INSERT can be used to disable the IDENTITY property of a column by enabling values to be explicitly inserted.

 

fonte: http://msdn.microsoft.com/en-us/library/ms191131(SQL.100).aspx

Share this post


Link to post
Share on other sites

Deixa eu aproveitar o post e pedir um help.

 

Uso em meu site todo um script para gerar o ID para minhas tabelas. Até aqui tudo beleza.

Agora to precisando fazer um INSERT em "lote", usando UBound e LBound e a coisa está encrencando pq

na hora de gravar gera duplicidade (e o SQL barra, como é o correto).

Preciso de um script para gerar os IDs num INSERT "em lote". Meu Insert é este

 

'Grava registros do banco de dados

sql="INSERT INTO CARGO_COMP (CargoCompCod, CargoCompCodCargo, CargoCompCodComp, CargoCompPeso, CargoCompDtCad, CargoCompUCad, CargoCompIPCad) VALUES ('"&varPK"', '"&varCodCargo&"', '"&varFinalComp&"', '"&varFinalPeso&"', getdate(), '"&varUsuario&"', '"&varIP&"')"

Set rs= MM_conexao_STRING.Execute(sql)

Set rs = Nothing

Next

 

varPK é a variável que vem do script que gera os IDs, é nisso que tá pegando, não dá tempo de gerar outro ID enquanto o sql grava o lote de registros.

Aí dá o erro de duplicidade na chave primária da tabela.

Share this post


Link to post
Share on other sites

Vou copiar o eriva_br:

 

OFF Topic... O tópico que nunca morre...

 

original de nov/2006

desenterraram em nov/2008

desenterraram novamente em jun/2009

e mais uma vez surgindo dos mortos em mai/2010

e de novo em mar/2011

Parece o filme Sexta-feira 13 :devil:

 

Voltanto ao tópico.....

 

varPK é a variável que vem do script que gera os IDs, é nisso que tá pegando, não dá tempo de gerar outro ID enquanto o sql grava o lote de registros.

Aí dá o erro de duplicidade na chave primária da tabela.

Você não pode usar uma chave primária explicita na tabela? O_o ou vao ter que usar transação para fazer o que quer, mas pode (e vai) causar locks no seu banco.

Share this post


Link to post
Share on other sites

Pessoal aproveitando esse post que é quase imortal desde de 2006 dizem. Como faço para copiar os dados do campo id que é auto incremente e passar para outro campo da mesma tabela? detalhe em php com mysql.

Share this post


Link to post
Share on other sites

Uma trigger deve resolver, mas oara que copiar ?!

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.