dipacheco 0 Posted February 24, 2011 Report Share Posted February 24, 2011 Boas! Tenho uma BD em SQL em q, numa das tabelas, tenho um campo chamado código que não quero que tenha repetições e que quero que seja gerado de automaticamente. Como posso fazer isso via management studio? Abraço. Link to post Share on other sites
Caça 17 Posted February 24, 2011 Report Share Posted February 24, 2011 Defines esse campo como chave primária e colocas a propriedade de auto incrementação a True Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted February 24, 2011 Author Report Share Posted February 24, 2011 e onde está a propriedade de auto incrementaçao? Link to post Share on other sites
Caça 17 Posted February 24, 2011 Report Share Posted February 24, 2011 Existe uma propriedade "Is Identity" Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted February 28, 2011 Author Report Share Posted February 28, 2011 outra vez sobre este assunto!... este campo chave com numeração automatica que criei funciona correctamente. mas agora queria outra coisa... se eu apagar um registo da BD esse registo deveria puder ser utilizado novamente. porque nao da? exemplo: apagava o registo com codigo = 2 quando fosse inserir, ao inves de inserir no ultimo, inseria no 2! Link to post Share on other sites
Caça 17 Posted February 28, 2011 Report Share Posted February 28, 2011 Porque é assim que funciona Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted February 28, 2011 Author Report Share Posted February 28, 2011 e nao ha maneira de contrariar isto? Link to post Share on other sites
Caça 17 Posted February 28, 2011 Report Share Posted February 28, 2011 Automaticamente não. Mas o que é que tens contra? Toda a gente implica com isto.. Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted February 28, 2011 Author Report Share Posted February 28, 2011 nao tenho nada contra! LOL diz-me so mais uma coisa! como posso reiniciar uma tabela? ou seja, colocar sem dados e fazer uso a partir do index 1. tenho de criar a tabela de novo?... Link to post Share on other sites
Caça 17 Posted February 28, 2011 Report Share Posted February 28, 2011 Existe um comando que reinicia mas não sei qual é Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
Baderous 31 Posted February 28, 2011 Report Share Posted February 28, 2011 O comando TRUNCATE limpa a tabela mas não sei se faz reset aos índices. http://msdn.microsoft.com/en-us/library/aa260621%28v=sql.80%29.aspx Link to post Share on other sites
dipacheco 0 Posted February 28, 2011 Author Report Share Posted February 28, 2011 isto está a complicar-me a vida porque tinha uma barra de deslocamento entre registos e o q fazia era ir para o 1º q era o 1, ir para o ultimo q era o last... ou entao ir para o anterior ou para o proximo! mas fazia isso pelo codigo... agora nao funciona porque o proximo a seguir ao 1 nao é o 2 mas sim o 5... bem como o primeiro pode nao ser o 1 se eu o apagar... etc Link to post Share on other sites
Caça 17 Posted February 28, 2011 Report Share Posted February 28, 2011 Como é que estás a fazer? Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted February 28, 2011 Author Report Share Posted February 28, 2011 estava a controlar pelo codigo... por exemplo codigo actual +1 ou -1 para saltar para proximos e anteriores! e no incio do form tirava o ultimo registo e guardava .. entao ia para o 1 qnd queria o primeiro e ia para o last qnd queria o ultimo! o last funciona bem, logicamente! os restantes é q nao! Link to post Share on other sites
Caça 17 Posted February 28, 2011 Report Share Posted February 28, 2011 Em vez de ir pelo ID tens de ir pela posição do registo Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted February 28, 2011 Author Report Share Posted February 28, 2011 e como chego à posiçao de um registo no sql? Link to post Share on other sites
Caça 17 Posted February 28, 2011 Report Share Posted February 28, 2011 É mais facil carregares os registos para um Datatable ou outra coisa e depois só mudas a posição, ou seja Na tabela existem 3 registos 1 2 5 DataTable também existem 3 registos mas Posição 0 = 1 Posição 1 = 2 Posição 2 = 5 Estas a ver?? Se tiveres duvidas abre um novo tópico Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted February 28, 2011 Author Report Share Posted February 28, 2011 nunca usei datatables mas vou ver isso! obrigado Link to post Share on other sites
Rechousa 70 Posted February 28, 2011 Report Share Posted February 28, 2011 Coloca o seed da tabela a 0, ou seja, o próximo registo vai ser criado com o ID = 1 DBCC CHECKIDENT(NomeDaTabela, 'RESEED', 0) Existe um comando que reinicia mas não sei qual é Espero ter ajudado, Pedro Martins Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa Link to post Share on other sites
Rechousa 70 Posted February 28, 2011 Report Share Posted February 28, 2011 estava a controlar pelo codigo... por exemplo codigo actual +1 ou -1 para saltar para proximos e anteriores! e no incio do form tirava o ultimo registo e guardava .. entao ia para o 1 qnd queria o primeiro e ia para o last qnd queria o ultimo! o last funciona bem, logicamente! os restantes é q nao! Podes sempre calcular o mínimo para o próximo e máximo por anterior. Imagina este cenário: Na tabela existem os registos 1, 9, 16, 27, 40 e 46 e estás a visualizar o registo 27. Ao navegares para o registo anterior executas: SELECT MAX(id) FROM tabela WHERE id < 27 // Resultado: 16 Ao navegares para o registo seguinte executas: SELECT MIN(id) FROM tabela WHERE id > 27 // Resultado: 40 Espero ter ajudado Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now