Bom galera, vendo esses Web Masters amadores cometerem sempre o mesmo erro, resolvi criar esse tutorial com o intuito de ajudar a solucionar o problema na hora de fazer o cadastro no site! Ele sempre cadastra a primeira conta normal, ai a segunda conta ele já dá o erro de duplicação...
Pois bem...
Para evitar aquele erro faça as seguites modificações:
1° Abra o Enterprise Manager, e selecione a database MuOnline. Clique com o botão direito do mouse e vá em "Design table"(Como na imagem a baixo!).
2° Após aberto você deverá visualizar a seguinte tela:
http://img692.imageshack.us/img692/5907/img2fl.png
3° Para corrigir o problema você deverá fazer os seguintes passos:
3.1- Selecione o campo Memb___id e clique na chavinha lá em cima, deixando-o assim como Primary Key(Chave primária), isso evita que as contas sejam duplicadas!
3.2- Selecione o campo Memb__guid, e procure lá em baixo, por 'Identity'(destacado em vermelho na imagem anterior), vai estar No, troque para Yes, automaticamente os campos 'Identity Seed' e 'Identity Increment' passarão a ter o valor '1'!
4° Após as modificações sua tela do enterprise manager deverá estar do seguinte modo:
[img width=800 height=600]http://img43.imageshack.us/img43/1623/img3w.png
Caso esteja diferente, volte no inicio do tutorial, e reveja os passos ^^
Bom, por enquanto foi feita a modificação no SQL, agora vamos modificar a página de cadastro!
5° Abra o arquivo de cadastro com um editor de texto qualquer(Dreamweaver, Bloco de notas, Notepad++, PHPEditor o de sua preferencia).
6° Encontre a query de cadastro(em alguns arquivos estarão lá no final, em outros estarão em outro arquivo, vai depender do seu site!), ela estará mais ou menos desse modo:
Exemplo:
"INSERT INTO MEMB_INFO(memb__guid,memb___id,memb__pwd) VALUES('1','$login','$senha')";
Em outros casos:
"INSERT INTO MuOnline.dbo.MEMB_INFO(memb__guid,memb___id,memb__ pwd) VALUES('1','$login','$senha')";
Enfim, não importa o modo em que ele esteja, o importante é entender oque está entre parenteses '(' ')'!
Explicando para um melhor entendimento:
Dentro dos primeiros parenteses , sempre será as colunas do SQL(memb__guid,memb___id,memb__pwd), e dentro do segundo parenteses - após o VALUES - sempre terá os valores a serem inseridos nas colunas, sempre seguindo a ordem que foi colocada nos primeiros parenteses!
Para corrijir esse erro leia o 7° passo:
7° O que deveremos mudar aqui neste arquivo é retirar o memb__guid de dentro do primeiro parenteses(removendo a virgula que vem na frente dele), e remover o valor referente a ele dentro do segundo parenteses(no exemplo o '1', removendo as aspas e a virgula).
Nosso exemplo ficaria assim:
"INSERT INTO MEMB_INFO(memb___id,memb__pwd) VALUES('$login','$senha')";
Em outros casos:
"INSERT INTO MuOnline.dbo.MEMB_INFO(memb___id,memb__pwd) VALUES('$login','$senha')";
8° Agora teste o seu cadastro(na maioria das vezes irá funcionar, porém há excessões).
9° (Caso tenha dado certo não precisa continuar seguindo esse tutorial, basta clicar em agradecer, e ler as observações lá no final xD) Deu um erro diferente, contendo na mensagem algo como: 'INDENTITY_INSERT', calma, não se desespere, tenho a solução também. Procure no mesmo arquivo PHP, editado anteriormente, algo com:
'SET IDENTITY_INSERT MEMB_INFO ON'
Assim que achar você tem 4 soluções a fazer:
Primeira: selecione a linha inteira(desde o primeiro caracter, até o ';'(ponto e virgula)), e apague a linha inteira;
Segundo: Comente a linha, coloque o mouse no inicio da linha e comente ela(Coloque duas barras '//')
Terceiro: Comente a linha de outro modo, no inicio da linha coloque uma barra e um asterisco(/*) e no final(depois de todo o código), coloque um asterisco e uma barra(*/)ATENÇÃO! Para iniciar o comentário deve-se colocar /* e para terminar */
Quarto: Troque ON para OFFATENÇÃO! Não testei esse modo, se não funcionar me avisem que eu removo do tutorial!
10° Teste o cadastro, se der certo, basta agradecer! Se não der, deixem suas dúvidas abaixo, informando a mensagem do erro que analisarei e verei aonde está errado!
OBS: Em alguns sites você poderá encontrar desse modo as QUERY:
$query = COMANDO AQUI!;
$msquery = mssql_query($query);
Ou seja, quando você acharem a query de cadastro, e a ultima informada:
SET IDENTITY_INSERT MEMB_INFO ON
Verifiquem se na frente dela tem algo com 'mssql_query', se tiver sem problemas, se não tiver, olhem oque vai estar na frente do $ e procurem no arquivo alguma coisa com: mssql_query($texto_que_voce_viu); Ai remova ambas as linhas(ou se preferir, remova só a que tem o msql_query)...
Bom galera, é isso, espero que resolva o problema da maioria, quem não conseguir solucionar só postar uma mensagem...
Créditos:
Imagens: Rafael Broken - Mustrike
Texto: Rafael Broken - Mustrike
Pois bem...
Para evitar aquele erro faça as seguites modificações:
1° Abra o Enterprise Manager, e selecione a database MuOnline. Clique com o botão direito do mouse e vá em "Design table"(Como na imagem a baixo!).

2° Após aberto você deverá visualizar a seguinte tela:
http://img692.imageshack.us/img692/5907/img2fl.png
3° Para corrigir o problema você deverá fazer os seguintes passos:
3.1- Selecione o campo Memb___id e clique na chavinha lá em cima, deixando-o assim como Primary Key(Chave primária), isso evita que as contas sejam duplicadas!
3.2- Selecione o campo Memb__guid, e procure lá em baixo, por 'Identity'(destacado em vermelho na imagem anterior), vai estar No, troque para Yes, automaticamente os campos 'Identity Seed' e 'Identity Increment' passarão a ter o valor '1'!
4° Após as modificações sua tela do enterprise manager deverá estar do seguinte modo:
[img width=800 height=600]http://img43.imageshack.us/img43/1623/img3w.png
Caso esteja diferente, volte no inicio do tutorial, e reveja os passos ^^
Bom, por enquanto foi feita a modificação no SQL, agora vamos modificar a página de cadastro!
5° Abra o arquivo de cadastro com um editor de texto qualquer(Dreamweaver, Bloco de notas, Notepad++, PHPEditor o de sua preferencia).
6° Encontre a query de cadastro(em alguns arquivos estarão lá no final, em outros estarão em outro arquivo, vai depender do seu site!), ela estará mais ou menos desse modo:
Exemplo:
"INSERT INTO MEMB_INFO(memb__guid,memb___id,memb__pwd) VALUES('1','$login','$senha')";
Em outros casos:
"INSERT INTO MuOnline.dbo.MEMB_INFO(memb__guid,memb___id,memb__ pwd) VALUES('1','$login','$senha')";
Enfim, não importa o modo em que ele esteja, o importante é entender oque está entre parenteses '(' ')'!
Explicando para um melhor entendimento:
Dentro dos primeiros parenteses , sempre será as colunas do SQL(memb__guid,memb___id,memb__pwd), e dentro do segundo parenteses - após o VALUES - sempre terá os valores a serem inseridos nas colunas, sempre seguindo a ordem que foi colocada nos primeiros parenteses!
Para corrijir esse erro leia o 7° passo:
7° O que deveremos mudar aqui neste arquivo é retirar o memb__guid de dentro do primeiro parenteses(removendo a virgula que vem na frente dele), e remover o valor referente a ele dentro do segundo parenteses(no exemplo o '1', removendo as aspas e a virgula).
Nosso exemplo ficaria assim:
"INSERT INTO MEMB_INFO(memb___id,memb__pwd) VALUES('$login','$senha')";
Em outros casos:
"INSERT INTO MuOnline.dbo.MEMB_INFO(memb___id,memb__pwd) VALUES('$login','$senha')";
8° Agora teste o seu cadastro(na maioria das vezes irá funcionar, porém há excessões).
9° (Caso tenha dado certo não precisa continuar seguindo esse tutorial, basta clicar em agradecer, e ler as observações lá no final xD) Deu um erro diferente, contendo na mensagem algo como: 'INDENTITY_INSERT', calma, não se desespere, tenho a solução também. Procure no mesmo arquivo PHP, editado anteriormente, algo com:
'SET IDENTITY_INSERT MEMB_INFO ON'
Assim que achar você tem 4 soluções a fazer:
Primeira: selecione a linha inteira(desde o primeiro caracter, até o ';'(ponto e virgula)), e apague a linha inteira;
Segundo: Comente a linha, coloque o mouse no inicio da linha e comente ela(Coloque duas barras '//')
Terceiro: Comente a linha de outro modo, no inicio da linha coloque uma barra e um asterisco(/*) e no final(depois de todo o código), coloque um asterisco e uma barra(*/)ATENÇÃO! Para iniciar o comentário deve-se colocar /* e para terminar */
Quarto: Troque ON para OFFATENÇÃO! Não testei esse modo, se não funcionar me avisem que eu removo do tutorial!
10° Teste o cadastro, se der certo, basta agradecer! Se não der, deixem suas dúvidas abaixo, informando a mensagem do erro que analisarei e verei aonde está errado!
OBS: Em alguns sites você poderá encontrar desse modo as QUERY:
$query = COMANDO AQUI!;
$msquery = mssql_query($query);
Ou seja, quando você acharem a query de cadastro, e a ultima informada:
SET IDENTITY_INSERT MEMB_INFO ON
Verifiquem se na frente dela tem algo com 'mssql_query', se tiver sem problemas, se não tiver, olhem oque vai estar na frente do $ e procurem no arquivo alguma coisa com: mssql_query($texto_que_voce_viu); Ai remova ambas as linhas(ou se preferir, remova só a que tem o msql_query)...
Bom galera, é isso, espero que resolva o problema da maioria, quem não conseguir solucionar só postar uma mensagem...
Créditos:
Imagens: Rafael Broken - Mustrike
Texto: Rafael Broken - Mustrike