2011-07-04 5 views
1

저는 MSSQL Server의 초보자이며 이에 대해 알지 못합니다.SQL Server가 레코드를 삭제하지 않습니다.

나는 아래 질문을 가지고 있습니다.

내가 SQL 서버에서 이미지 아래 당 쇼와 같은 값을 구 개 기록을 추가 한 2005

내가 테이블에 대한 기본 키를 제공하지 않았습니다.

이제 하나의 레코드 또는 여러 레코드를 선택하고 삭제 키를 누르면 테이블에서 레코드가 삭제되지 않고 오류가 발생합니다.

enter image description here

+1

어떤 오류가 발생하고 있습니까? –

+4

첫 번째 단계 : ** 기본 키 추가 ** –

+1

무엇이 오류입니까? – CatchingMonkey

답변

6

당신은 그렇지 않으면 SQL 서버가 레코드를 구별 방법 및 오류의 원인이 삭제되는 한 알 때문에 방법이 없습니다, 각 레코드를 고유하게 식별하는 기본 키를 추가해야합니다.

+0

답장을 보내 주셔서 감사합니다 .......... 우리가 테이블의 전체 데이터를 삭제할 수있는 다른 버튼이나 방법이 없습니까? 또는 테이블 내용을 지우는 중 ??? –

+0

다른 답변 중 하나에서 언급했듯이, 'DELETE * FROM dbo.Patient'는 테이블을 지울 것입니다. 그런 다음 기본 키를 추가하고 데이터로 테이블을 다시 채울 수 있습니다. – EdoDodo

+0

'*'없이'dbo.Patient'에서 삭제 하시겠습니까? 또는 대안으로 'TRUNCATE TABLE dbo.Patient'. – MatBailie

2

기본 키가 없기 때문에 서버에서 제거 할 행을 알 수 없기 때문입니다. 테이블 (DELETE * FROM dbo.Patient)을 지우고 새 ID 열을 기본 키로 만듭니다.

2

MSSQL에서 테이블의 기본 키가 있어야합니다. 이것은 특정 테이블의 각 행을 고유하게 식별합니다.

예를 들어 오라클에서는 ROWID (모든 테이블의 모든 행이 데이터베이스에서 고유 한 ID를 가짐을 의미)를 사용할 수 있으므로 필요하지 않습니다. 오라클이이 ID를 알고 있으면 어떤 테이블인지 확실하게 알 수 있습니다.

이제 테이블에 기본 키를 추가 할 수 있으며 고유성을 보장하면서 자동 증가가 가능합니다.

관련 문제