2011-07-04 20 views
1

私はMSSQL Serverの初心者であり、知識がありません。SQL Serverはレコードを削除しません

私は以下の質問があります。

私はSQL Serverで画像の下あたりのショーと同じ値の9件のレコードを追加した2005年

私は表に主キーを与えられていないことがあります。

これで、1つのレコードまたは複数のレコードを選択して削除キーを押すと、テーブルからレコードが削除されず、エラーが表示されます。

enter image description here

+1

どのようなエラーが表示されますか? –

+4

最初の手順:**プライマリキーを追加する** –

+1

エラーは何ですか? – CatchingMonkey

答えて

6

あなたは、そうでない場合は、SQLサーバーがエラーを引き起こして、レコードを区別する手立て、したがって、削除するかを知る方法がない、各レコードを一意に識別するための主キーを追加する必要があります。

+0

返信ありがとう..........私たちはテーブルのデータ全体を削除することができる他のボタンや方法はありませんか?またはテーブルの内容をクリアしますか? –

+0

他の回答の1つで述べたように、 'DELETE * FROM dbo.Patient'はテーブルをクリアします。次に、主キーを追加して、データで表をもう一度埋めることができます。 – EdoDodo

+0

あなたは '*'なしで 'DELETE FROM dbo.Patient'を意味しますか?または、代わりに 'TRUNCATE TABLE dbo.Patient'。 – MatBailie

2

これは主キーがなく、サーバーが削除する行がわからないためです。テーブル(DELETE * FROM dbo.Patient)をクリアし、新しいID列を主キーとして作成します。

2

MSSQLでは、テーブルの主キーが必要です。これにより、特定の表の各行が一意に識別されます。

たとえばOracleでは、ROWIDを使用することができます(すべてのテーブルのすべての行がデータベース内で一意のIDを持つことを意味します)。このIDを知ったら、Oracleはそれがどのテーブルかを確かに知っています。

これで、プライマリキーをテーブルに追加できます。プライマリキーを自動インクリメントにすることで、一意性を確保できます。

関連する問題