Inquiridor
Existe algum perigo em considerar apenas SELECT abs(checksum(newid()))

Discussão Geral
-
Todas as Respostas
-
Bom dia, vc fala isso como gerador de chaves ??
não entendi, explique mais seu contexto
Wesley Neves - Brasilia-DFhttps://wesleyneves.wordpress.com/
SELECT Tab.[that's me:]
FROM
(
VALUES
('Wesley Neves'),
('Analista.NET'),
('Pós Graduando em Banco de Dados com ênfase em BI'),
('MTA -SQL Server'),
('MTA -Web Developed')
) AS Tab ("that's me:");
"Se a resposta for útil ou ajudar ,não esqueça de marcar"
Wesley Neves
-
Orlando,
Quando você se referi a perigo esta querendo dizer o que?
Qual ou quem é o seu campo chave primária?
Ou você pretende utilizar o NewID() como um outro elenco para unicidade e controle de dados?
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
-
Orlando,
Por padrão ao configurar e aplicar uma replicação o próprio SQL Server adiciona nas tabelas envolvidas neste tipo de ambiente uma coluna única e específica justamente para fazer este tipo de controle, normalmente esta coluna se chama ms_repl....
Não recomendo para o seu cenário fazer uso de uma chave primária através do uso das funções ABS() e NewID(), ao meu ver isso acaba gerando um pequeno custo de processamento que poderia ser facilmente contornado pelo uso de campos do tipo Int.
Talvez uma possibilidade que não seja a mais indicado, mas que poderia te ajudar seria o uso de chaves primárias artificiais através da auto numeração, ou seja, fazer uso da propriedade Identity() na sua chave primária, sabendo que o SQL Server em alguns momentos ou situações pode aplicar um salto na numeração sequência.
Analise se isso pode ser útil para você.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Bom dia Galvão,
Com o uso do Identity todas as maquinas envolvidas no processo de negócio vão gerar um identificador igual. Como posso contornar isto?
No ambiente que desenvolvi as máquinas clientes envia os dados para o servidor. Estes dados são colocados na tabela geral. E no lado do servidor existe um método que é chamado a pois a recepção dos dados que os inseri em tabelas primarias do servidor.
agradecia vosso apoio
Orlando
-
Orlando,
Tudo bem? Então neste caso, você pode fazer o seguinte, deixar uma coluna sendo gerado de forma sequência, e adicionar uma outra coluna que guarda o nome da máquina ou algum outro dado, e fazer justamente a concatenação entre estas duas colunas, forma assim a sua "respectiva" chave primária.
Na verdade você terá uma chave artificial sendo gerada somente como um controle interno, mas para sua regra de negócio poderia utilizar a junção destas duas colunas.
Ou então criar um chave primária composta justamente com estas duas colunas, sendo a uma coluna numerada automaticamente e a outra com um valor padrão que poderia ser o nome da máquina, código, ou qualquer outra sigla para diferenciar as estações.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]