por Bruno de Andrade

TRUNCATE em tabela com FOREIGN KEY - SQL Server

Se você tentar executar um TRUNCATE em alguma tabela referenciada com uma FOREIGN KEY irá receber uma mensagem do tipo: "Não é possível truncar a tabela 'tblUsuarios' porque uma restrição FOREIGN KEY faz referência a ela.".

Nesse caso temos duas atlernativas. A primeira delas é dar um DROP nas FOREIGN KEYs, executar o TRUNCATE e recriar as FOREIGN KEYs:

ALTER TABLE tblCompras
DROP CONSTRAINT FK_ComprasUsuario
GO

TRUNCATE TABLE tblUsuarios
GO

ALTER TABLE tblCompras 
ADD CONSTRAINT FK_ComprasUsuario
FOREIGN KEY (usuarioID)
REFERENCES tblUsuarios(usuarioID)
GO

A segunda alternativa é executar um DELETE sem a cláusula WHERE. Caso a tabela possua "auto increment", também é possível resetá-lo:

DELETE FROM tblUsuarios
GO

DBCC CHECKIDENT('tblUsuarios', RESEED, 0)
GO

Comentários

Carregando comentários

Postar um novo comentário



Processando...