2012-03-30 8 views
0

を使用して、主キーフィールドを変更することはできませんは、私は2つの異なるオンラインSQLテーブルエディタを試してみました、オンラインSQLのテーブルエディタ

ユニバーサルテーブルエディタ& 表スマートエディタ

上記のツールを使用してデータベースを表示すると、私のテーブルにプライマリキーフィールドが定義されていれば、それは編集不可能です。私はそれがテーブルエディタに関連していると思っていましたが、2人の異なるエディタが同じ問題を引き起こしたので、SQL Serverに関連していると思います。

Table Smart Editor Screenshot for my table

Universal Table Editor Screenshot for my table

My database properties for my table

TSE Error image

私は現在、SQL Serverのここでは2005

を使用していますことは、私の編集者と私のデータベース・プロパティのための画像であり、

UTE Error image

+0

編集方法特定の行でその列の値を変更するか、列の定義(型、サイズなど)を変更しますか? –

+0

列の値を変更することはできません。エディタのスクリーンショットを追加しました。主キーの列編集は無効になっています。編集した答えをご覧ください。 – HOY

+0

おそらくあなたはそれについて正しいようですが、たとえばアクセスデータベースの場合、ツールは正常に機能しています。私の解決策は、2列から主キーを削除し、代わりにUNIQUE制約を追加することです。あなたのコメントを回答として書いてください。私はそれを受け入れます。 – HOY

答えて

1

あなたが使用しているエディタは、主キーの値が決して変更されず、常にシステム生成されているという前提で構築されているようです。

とは一般的にはです。主キーの値は決して変化しないことが望ましいとしばしば言われていますが、良いツールはこれを真実とみなすべきではありません。また、主キーの値は常に自動生成されるものとはみなされません。


変更を行う主キーに対処するためのSQLに組み込まれているいくつかの問題を緩和する機能があります - 特に、FOREIGN KEY制約のCASCADE機能が。

2

通常、データベース値の変更に失敗したというエラーメッセージが表示されます。メッセージは何ですか?

これは、プライマリキーが自動番号付きIDとして設定されているようです。この場合、値は各行が作成されるときにデータベースによって自動的に決定されます。この値は編集できません。

+0

私の質問にエラーメッセージを追加しました – HOY

+0

さて、そこに行きます。 IDはNULLで、許可されていません。あなたが何をしているのか正確にはわかりませんが、上記のINSERTクエリではID列の値が指定されていません。つまり、NULLです。それは許可されていないことを意味します。 –

+0

オートインクリメントで問題は解決しないが、兄弟のkaramazovがid = 5、copy = 1のデータベースにある本があり、図書館員がこの本の別のコピーを受け取ったとすると、id = 5、book = 2をデータベースにコピーする。 – HOY

関連する問題