View Full Version : Adicionar Registos Auto


SFSS
11-03-2008, 17:00
Boa tarde a todos,

estou a trabalhar numa aplicação que a base de dados corre em SQL Express.
Estou com uma duvida que talvez me possam ajudar. Tenho uma tabela XPTO, esta tabela têm os seguintes campos:

- NBRBILHETE;
- FORNECEDOR;
- DATA.

Imaginem que o número do ultimo bilhete é 245. Existe alguma forma de com um simples comando SQL conseguir adicionar mais 500 bilhetes?! Que de uma forma automática o SQL incremente mais 500 bilhetes e no final o ultimo bilhete seja o número 745.

Obrigado & Cumps.

Mavors
11-03-2008, 17:11
Se o NRBILHETE for identity, escusas de mudar o index o que facilita.
Por jdbc consegues fazer isso na boa pq podes adicionar uma série de inserts com um ciclo incremental e fazer commit no final. Mas com comandos sql se é possível não sei.

Dá para fazer Do, While's em SQL mas n sei como.

No que trata de inserts, repetitivos ou não, o Excel costuma ser o melhor amigo do homem.

LinuxWarrior
11-03-2008, 17:17
faz um script em ruby, e com um ciclo while fazes isso!

SFSS
11-03-2008, 17:28
Com o While eu consigo, neste momento está assim.
Neste momento tenho algo deste genero

For i = 3000 to 5000 Step 1

SQLCommand(INSERT INTO xpto (nbrbilhete,fornecedor,data) VALUES(@nbrbilhete,@fornecedor,@data), SQLConnection)
SQLCommand.Parameters.Add(New SQLParameter("@nbrbilhete", i))
SQLCommand.Parameters.Add(New SQLParameter("@fornecedor", "Xpto"))
SQLCommand.Parameters.Add(New SQLParameter("@data", "11-03-2008"))

SQLConnection.Open
SQLCommand.ExecuteNonQuery
SQLConnection.Close

Next

Se calhar existe uma forma mais simples?!?!!

Cumps.

Mavors
11-03-2008, 17:51
Então e não tá bom? :P

Acho que está com óptimo aspecto.
Deve ser complicado reduzir mais o código que isso.

SFSS
12-03-2008, 17:09
Ok. Obrigado!

Mais uma ajuda, please!!!

Tenho a Tabela XPTO com estes campos(NbrBilhete(numeric), Fornecedor(numeric), Data(datetime), Vendido(tinyint)).

NbrBilhete * Data * Vendido
1000 * 12/03/2008 * Não
1001 * 12/03/2008 * Não
"
"
"

Depois tenho uma segunda tabela que se chama XPTO2 com estes campos(nbrbilhete(numeric), datacriacao(datetime),etc...)

O que eu pretendo fazer no SQL(Automático) é ao adicionar um registo na tabela XPTO2 com o número de bilhete "1000" o SQL na tabela XPTO alterar o vendido para "Sim" do bilhete nbr "1000".
Penso que com um Trigger consigo fazer isto, mas nunca trabalhei com triggers e stored, estou quase a 0 nesta parte!!!

Obrigado mais uma vez...

Abraços

AliFromCairo
12-03-2008, 23:41
Podes de facto fazer um trigger que "after insert" numa determinada tabela, vai alterar registos da outra mas, no entanto, o mais simples é mesmo fazeres um UPDATE a seguir ao INSERT na tabela.

SFSS
13-03-2008, 11:16
Ok! Para já vou fazer mesmo assim tenho de terminar o software.

Já que é possível fazer com um trigger a minha ideia é entrar na área dos triggers para aprender como funciona.

Obrigado

AliFromCairo
14-03-2008, 00:53
Boas, os triggers são bastante simples. Para os usares correctamente, apenas precisas de ter uma noção teórica do que é um trigger e, em seguida, basta veres a sintaxe usada pelo teu SGBD para a criação de triggers.

No entanto, continuo a achar que para o que queres fazer, um trigger pode não ser o mais adequado.