Adicionar coluna para assegurar a chave composta é sem igual,

Eu tenho uma tabela que precisa ter uma chave primária composta com base em 2 colunas (Material number, Plant).

Por exemplo, isso é como é atualmente (note que estas linhas não são exclusivo):

MATERIAL_NUMBER    PLANT NUMBER
------------------ ----- ------
000000000000500672 G072  1
000000000000500672 G072  1
000000000000500672 G087  1
000000000000500672 G207  1
000000000000500672 G207  1

No entanto, será preciso adicionar a coluna adicional (NUMBER) para a chave composta de tal forma que cada linha é único, e deve funcionar assim:

Para cada MATERIAL_NUMBER, para cada PLANT, deixe NUMBER inicia em 1 e incrementado em 1 para cada registro duplicado.

Esta seria a saída desejada:

MATERIAL_NUMBER    PLANT NUMBER
------------------ ----- ------
000000000000500672 G072  1
000000000000500672 G072  2
000000000000500672 G087  1
000000000000500672 G207  1
000000000000500672 G207  2

Como eu poderia ir sobre a concretizar, especificamente no SQL Server?

Melhores Cumprimentos!

0
2019-09-17 11:25:19
origem
2 respostas

Eu tenho certeza que eles querem dizer com "criado anteriormente dispositivo de cópia de segurança".

Isso significa que, em tis exemplo, eles virtual criada anteriormente dispositivo de cópia de segurança. Então, agora, em vez de usar a sintaxe backup...**to disk** =... eles usam

backup ...to <device_name>

Você pode ignorar completamente este e registo de cópia de segurança para diferentes arquivos, como todo o mundo:

BACKUP LOG AdventureWorks2012  
   TO disk = 'V:\backups\log\AdventureWorks2012_20190918.trn;

Eu tenho inúmeros nomes de arquivos, por causa da distribuição. Como faço para fazer um arquivo de log de backup, de todo o meu backup?

Log backup não é feito de "full backup". Primeiro você cria uma "base" por full backup, e não importa se você listra que para muitos arquivos ou não, então, você pegue log backup (log backups geralmente são muito pequenos e você não precisa de tira)

There may be other backup processes that go on on this database. Will this cause me issues with the log file backups (Another full backup of the database might clear my transaction log before I get my backup done?)

Full backups não são um problema para você, como eles só criar outras "bases" a partir do qual você pode iniciar o restore chain. Você vai ter problemas se outros tomam log backups, como ele vai interromper log backup chain (não é full backup para limpar o registro, o truncamento de log só é feito por log backups).

Você deve falar com aqueles que tomam essas log backups se o que pode levá-los com copy_only: Somente Cópia Backup (SQL Server) ou se eles podem deixar estas cópias de segurança para você em algum disco.

+0
2019-09-17 11:40:02

O comando que você tenha pesquisado é a forma como isto é feito. Alterar uma mensagem de commit 70+ compromete-se novamente está reescrevendo a história; é uma mudança poderosa.

A partir do google docs:

To modify a commit that is farther back in your history, you must move to more complex tools. Git doesn’t have a modify-history tool, but you can use the rebase tool to rebase a series of commits onto the HEAD they were originally based on instead of moving them to another one. With the interactive rebase tool, you can then stop after each commit you want to modify and change the message, add files, or do whatever you wish.

Para sua situação, isso significa alguma variação sobre o seguinte:

$ git rebase -i HEAD~80 // some range including your target commit

Isto irá abrir uma Git Rebase TODO. Uma vez lá, alteração de pick para reword no a cometer o seu destino cometer. Escrever e sair do buffer e, em seguida, um editor será aberto com a mensagem que você gostaria de alterar. A reescrevê-lo e salvar o buffer.

Agora, force push ramo, e a história foi reescrita.

$ git push -f

Git Ferramentas - Reescrevendo A História

+0
2019-09-17 12:35:27

Veja mais perguntas por marcas