sql >> データベース >  >> Database Tools >> SSMS

SSMSは、テーブル内のレコードの重複を許可しますが、後続の更新は許可しません

    Management Studioがこれまでに行ったことは、SQLを作成してDBに対して実行するためのUIを提供することだけです。

    あなたの場合、行を追加するたびに、INSERTステートメントが生成されます。これは完全に有効です。

    次に、UIを使用して、これらすべての重複レコードから1つのレコードを削除または更新しようとすると、それを行うためのSQLを生成できませんでした。その理由は、テーブルにキーがなかったため、UPDATEまたはDELETEしようとしたレコードを表すWHERE句を生成する方法がないためです。

    「エラー」メッセージは私には完全に明確で有効に聞こえます。

    コメントについて:

    驚いたことに、2行目に「value1」を入力して下に入力することもできました。これは、同じ行が2つあるため、不可能なはずです。しかし、私はただいじっていたので、これは私を悩ませませんでした。

    明らかに、これは奇妙で関係を破る理論ですが、これは私が作成したテーブルであり、混乱させるために作成したものであるため、私はあまり気にしませんでした。

    複製を許可するデータベーステーブルがあることには何の問題もありません。それが必要な場合は、完全に有効なことです。複製を許可したことを「気遣う」ことや「悩まされる」ことはありません。そこに間違いがあります。その場合、主キーを追加するのを忘れたことに気付くはずです。



    1. Management Studioでパラメーター化されたクエリを作成するにはどうすればよいですか?

    2. ローカルSQLServerインスタンスへの管理者アクセスを自分に許可するにはどうすればよいですか?

    3. 別のSQLServerに接続するためのT-SQL構文は何ですか?

    4. SQL Server:.mdfからデータベースをインポートしますか?