Pegar a sequencial de um campo com sequencia automática

Olá pessoal!

Estou com uma situação que preciso de ajuda:

Tenho um cadastro de produtos onde tenho um código (PK) e um código sequencial (configurado para gerar sequencia automática).

Preciso fazer o seguinte:

Se o código (PK) estiver vazio, assuma o código sequencial.

Alguém tem alguma ideia?

Desde já agradeço!

Talvez a macro do SC abaixo resolva.
sc_set_global($variavel_01) ou ({Meu_Campo})

crie uma trigger no banco para a tabela em questão before insert

if (new.chave_pk is null or new.chave_pk= ‘’ or new.chave_pk=0)
then
Select Max(sequencial+1) into new.chave_pk from tabela;
end if;

Esse TRIGGER que uso para multi-empresas pode dar uma LUZ:

AUTO INCREMENTO COM CHAVE COMPOSTO TIPA MULTI-EMPRESAS QUE TEM A EMPRESA E O AUTO INCREMENTO EM OUTRO CAMPO
TEM QUE CRIAR TRIGGER

leitores = tabela
BibliotecaID = campo inteiro que é a bilblioteca
CodigoLeitorID = Cada leitor dentro de cada biblioteca em sequência.

Chaves Primarias = BibliotecaID e CodigoLeitorID

DELIMITER $$

CREATE TRIGGER Trigger_leitores_CodigoLeitorID BEFORE INSERT on leitores

FOR EACH ROW
BEGIN
declare Novo_CodigoLeitorID integer;
Set Novo_CodigoLeitorID = (select max(CodigoLeitorID) from leitores where BibliotecaID = new.BibliotecaID);
if (Novo_CodigoLeitorID <= 0) or (Novo_CodigoLeitorID is null) then
set Novo_CodigoLeitorID = 1;
else
set Novo_CodigoLeitorID = Novo_CodigoLeitorID + 1;
end if;
set new.CodigoLeitorID = Novo_CodigoLeitorID;
END $$

nos próximos posts, Jailton, não vou me dar nem o trabalho de responder e solicito lhe procurar, rs…

tenho por hábito treinar as pessoas a pensarem, e quando alguém já esta interagindo a um tópico eu só interfiro em caso do tópico se estender muito sem uma solução aceitável para quem postou, e percebi que você vive rebatendo respostas já dadas.

ta na hora de eu descansar um pouco mesmo.

Quem esta usando tópico tem o direito de escolher analisar interagir com o que for mais prático, para ela tanto seu, meu retorno, ou de outros amigos, é mais uma opção a mais, a pessoa pega
‘analisa’ e usa o que desejar.

Tem gente que compra a ferramenta e nem é programador, meus retornos e seus também, servem para eles depois que visitam o fórum, tipo uma Wiki.

Se você clicar em Iniciar e olhar embaixo do lado esquerdo ‘olhe’ o tanto de gente que acessa o fórum só para ler e pegar coisas já prontas, e ai ai que meus Posts mais completos entram.

Crie suas soluções de forma rápida e inovadora reduzindo o tempo de desenvolvimento em até 80%.

Olá!

Eu poderia usar a macro sc_select com um MAX no select e colocar em uma variável e atribuí-la ao campo?

if (empty({CampoCodigo})) {
$Seq = sc_select("SELECT MAX(campo) + 1 from tabela)
{

{CampoCodigo} = $Seq

Colocaria esta instrução no Before insert.

Gostaria de uma opinião dos colegas para ver se isso estaria correto.

Boa sorte Colega.

Correto, pode ser fazer isso também, ou um Trigger igual ao Haroldo, passou.

Não use a variável $Seq, por ela ser curta pode interferir em alguma rotinha comando/interno reservado, use: $SequenciaNro ou $Seq_x.

Obrigado pelas dicas!

Irei efetuar os testes e retornarei.