CREATE TABLE Type1
(
TypeID TINYINT NOT NULL IDENTITY(1,1),
TypeName VARCHAR(20) NOT NULL,
Speed VARCHAR(10) NOT NULL
CONSTRAINT TypeID_pk PRIMARY KEY (TypeID)
);
CREATE TABLE Splan
(
PlanID TINYINT NOT NULL IDENTITY(1,1),
TypeID TINYINT NOT NULL,
PlanName VARCHAR(20) NOT NULL,
Quota SMALLINT NOT NULL
CONSTRAINT PlanID_pk PRIMARY KEY (PlanID)
CONSTRAINT TypeID_fk FOREIGN KEY (TypeID) REFERENCES Type1(TypeID)
);
INSERT INTO Type1(TypeName, Speed)
VALUES ('Sample type', '10Mbps'),
('Other type', '50Mbps');
^そこまでは大丈夫
次に、次のように入力すると、「メッセージ 515、レベル 16、状態 2、行 8 列 'TypeID' に値 NULL を挿入できません ..... 列は許可されません。INSERT は失敗します。」ステートメントは終了します
INSERT INTO Splan(PlanName, Quota)
VALUES ('Some sample name', '500GB'),
('sample2, '250GB');
列レベルとテーブル レベルの両方で制約を作成しようとしましたが、2 番目の INSERT ステートメントは入力を拒否しました。GUI を介して再確認すると、'TypeID' には確実に IDENTITY プロパティがあります。
私はいたるところを見てきましたが、このエラーは IDENTITY プロパティの欠如に起因しているようですが、作成ステートメントに存在し、エラーがまだ発生しています。IDENTITY からシードとインクリメントを削除しようとしましたが、まだ何もありません。また、一度に1行ずつデータを挿入しようとしましたが、そこにも何もありませんでした。
PS実際の名前が置き換えられ、他の列の行が省略されていることに気付いていない場合。