none
Banco Sql server 2005 dúvida com FK RRS feed

  • Pergunta

  • Banco Sql server 2005 duvida com FK
    Bom dia a todos!
    Em uma tabela do banco de dados, que existia varia FK eu retirei algumas que não era mais necessária, após importa uns registros para ela, pude perceber que os registros antigos o sistema permite que sejam alterados mais os novos não deixa gerando erro!
    E como se as FK estivessem presentes na tabela, existe alguma forma de verificar o porquê ocorre isso.
    Erro: record not found or changed by another user
    record not found or changed by another user
    Agradeço



    • Editado Itasouza quarta-feira, 31 de agosto de 2011 13:54 erro!
    quarta-feira, 31 de agosto de 2011 13:54

Respostas

  • Ita,

     

    Se puder postar exatamente o comando que voce esta rodando seria bacana, todo caso, segue um script e nao consegui simular o erro

    --CRIA TABELAS

    CREATE TABLE Curso(id INT IDENTITY(1,1) PRIMARY KEY, nome VARCHAR(100))

    CREATE TABLE Alune(id INT IDENTITY(1,1), nome VARCHAR(100), Curso INT REFERENCES Curso(id))

    --CARGA DE DADOS

    INSERT INTO Curso(Nome) VALUES

    ('Sistemas de informação'),

    ('Engenharia da computação')

     

    INSERT INTO Alune(Nome, Curso) VALUES

    ('Fabrizzio', 3),

    ('Marcelo', 2)

     

    --DROP DA CONSTRAINT

    ALTER TABLE Alune DROP CONSTRAINT FK__Alune__Curso__0F975522

     

    --NOVA INSERCAO DE DADOS

    INSERT INTO Alune(Nome, Curso) VALUES

    ('Tiago', 3),

    ('Gustavo', 4)

    --NOTE QUE AQUI OS DADOS MESMO NAO EXISTINDO NA TABELA CURSO, OS MESMO FORAM INSERIDOS

     

    --UPDATE

    UPDATE Alune SET Curso = '5' WHERE Nome LIKE 'Fabrizzio'

     

     

    Ele nao mantem um "cache" por exemplo do que um dia sofreu uma constraint.

    Veja este link: http://www.delphigroups.info/2/4/283071.html


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Sugerido como Resposta Eder Costa segunda-feira, 5 de setembro de 2011 17:03
    • Marcado como Resposta Eder Costa quinta-feira, 8 de setembro de 2011 17:42
    quarta-feira, 31 de agosto de 2011 15:33
    Moderador

Todas as Respostas

  • Ita,

     

    Não creio que esse erro seja diretamente com as FK´s, este é o erro exato que esta seno gerado na hora da inserção de dados?


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    quarta-feira, 31 de agosto de 2011 14:55
    Moderador
  • No momento de edição!

     

    att

    quarta-feira, 31 de agosto de 2011 15:22
  • Ita,

     

    Se puder postar exatamente o comando que voce esta rodando seria bacana, todo caso, segue um script e nao consegui simular o erro

    --CRIA TABELAS

    CREATE TABLE Curso(id INT IDENTITY(1,1) PRIMARY KEY, nome VARCHAR(100))

    CREATE TABLE Alune(id INT IDENTITY(1,1), nome VARCHAR(100), Curso INT REFERENCES Curso(id))

    --CARGA DE DADOS

    INSERT INTO Curso(Nome) VALUES

    ('Sistemas de informação'),

    ('Engenharia da computação')

     

    INSERT INTO Alune(Nome, Curso) VALUES

    ('Fabrizzio', 3),

    ('Marcelo', 2)

     

    --DROP DA CONSTRAINT

    ALTER TABLE Alune DROP CONSTRAINT FK__Alune__Curso__0F975522

     

    --NOVA INSERCAO DE DADOS

    INSERT INTO Alune(Nome, Curso) VALUES

    ('Tiago', 3),

    ('Gustavo', 4)

    --NOTE QUE AQUI OS DADOS MESMO NAO EXISTINDO NA TABELA CURSO, OS MESMO FORAM INSERIDOS

     

    --UPDATE

    UPDATE Alune SET Curso = '5' WHERE Nome LIKE 'Fabrizzio'

     

     

    Ele nao mantem um "cache" por exemplo do que um dia sofreu uma constraint.

    Veja este link: http://www.delphigroups.info/2/4/283071.html


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Sugerido como Resposta Eder Costa segunda-feira, 5 de setembro de 2011 17:03
    • Marcado como Resposta Eder Costa quinta-feira, 8 de setembro de 2011 17:42
    quarta-feira, 31 de agosto de 2011 15:33
    Moderador
  • Posso aproveitar e tirar uma dúvida Caputo??
    Essa criação de tabelas com coluna nomeada de ID funciona no SQL Server?
    DBA Vini
    quarta-feira, 31 de agosto de 2011 15:38
  • Logico Vinicius,

     

    Mas não entendi....Aonde exatamente voce esta com duvida se funciona ou não? o script acima funciona perfeitamente....


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    quarta-feira, 31 de agosto de 2011 15:39
    Moderador
  • Tentando executar teu script aqui....

    CREATE TABLE CursoTeste(id INT IDENTITY(1,1) PRIMARY KEY, nome VARCHAR(100))
    The command(s) completed successfully.


    CREATE TABLE Alune(id INT IDENTITY(1,1), nome VARCHAR(100), Curso INT REFERENCES CursoTeste(id))
    The command(s) completed successfully.

     

    Significa que eu tinha mudado o nome da tabela apenas em um CREATE, desculpe hehehe, pois já existe CURSO aqui...


    DBA Vini
    • Editado Vinicius Allil quarta-feira, 31 de agosto de 2011 15:44 alteração
    quarta-feira, 31 de agosto de 2011 15:43