私はこのスクリプトを使用してテーブルを作成するよう指示された本からチュートリアルと学習MVCを実行しています。しかし今はペットテーブルに行全体を追加したいのですが、私はそれを行うことができません。SQLの行にデータを挿入するにはどうすればよいですか?
すべてのテーブルを作成するために使用されるスクリプト。
CREATE TABLE [dbo].[Setting] (
[Id] INT NOT NULL IDENTITY(1, 1)
,[Key] VARCHAR(50) NOT NULL
,[Value] VARCHAR(500) NULL
,CONSTRAINT [PK_Setting] PRIMARY KEY ([Id])
);
CREATE TABLE [dbo].[PetType] (
[PetTypeID] INT NOT NULL IDENTITY(1, 1)
,[PetTypeDescription] VARCHAR(50) NULL
,CONSTRAINT [PK_PetType] PRIMARY KEY ([PetTypeID])
);
CREATE TABLE [dbo].[Status] (
[StatusID] INT NOT NULL IDENTITY(1, 1)
,[Description] VARCHAR(50) NOT NULL
,CONSTRAINT [PK_Status] PRIMARY KEY ([StatusID])
);
CREATE TABLE [dbo].[Pet] (
[PetID] INT NOT NULL IDENTITY(1, 1)
,[PetName] VARCHAR(100) NOT NULL
,[PetAgeYears] INT NULL
,[PetAgeMonths] INT NULL
,[StatusID] INT NOT NULL
,[LastSeenOn] DATE NULL
,[LastSeenWhere] VARCHAR(500) NULL
,[Notes] VARCHAR(1500) NULL
,[UserId] INT NOT NULL
,CONSTRAINT [PK_Pet] PRIMARY KEY ([PetID])
,CONSTRAINT [FK_Pet_Status] FOREIGN KEY ([StatusID]) REFERENCES [Status]([StatusID])
,CONSTRAINT [FK_Pet_User] FOREIGN KEY ([UserId]) REFERENCES [UserProfile]([UserId])
);
CREATE TABLE [dbo].[PetPhoto] (
[PhotoID] INT NOT NULL IDENTITY(1, 1)
,[PetID] INT NOT NULL
,[Photo] VARCHAR(500) NOT NULL CONSTRAINT [DF_PhotoFile] DEFAULT '/content/pets/no-image.png'
,[Notes] VARCHAR(500) NULL
,CONSTRAINT [PK_PetPhoto] PRIMARY KEY ([PhotoID])
,CONSTRAINT [FK_PetPhoto_Pet] FOREIGN KEY ([PetID]) REFERENCES [Pet]([PetID])
);
CREATE TABLE [dbo].[Message] (
[MessageID] INT NOT NULL
,[UserId] INT NOT NULL
,[MessageDate] DATETIME NOT NULL
,[From] VARCHAR(150) NOT NULL
,[Email] VARCHAR(150) NOT NULL
,[Subject] VARCHAR(150) NULL
,[Message] VARCHAR(1500) NOT NULL
,CONSTRAINT [PK_Message] PRIMARY KEY ([MessageID])
,CONSTRAINT [FK_Message_User] FOREIGN KEY ([UserId]) REFERENCES [UserProfile]([UserId])
);
私のペットテーブルの最初の行にいくつかのランダムな値(テスト用)を追加します。 これは、わかりやすくするため、Petテーブルの最初の行です。
私は私のテーブルに値を追加するには、このスクリプトを使用してみました。
INSERT INTO Pet VALUES ('1', 'Fido', '12', '4', '1', '12/07/2004', 'New York', 'nothing', '1')
しかし、私は列リストが使用されている場合、テーブルのID列「ペット」の明示的な値のみを指定することができ、IDENTITY_INSERTがONになっている
を言ってエラーを得ました。
私はかなり新しいSQLです。これを理解することはできません。私は人々がSET IDENTITY_INSERT
について何か言ったところで他の答えを見ましたが、これは私にとってもうまくいきませんでした。私はデータベース言語がかなり新しいので、私は他の答えが誤解されていると思う。だからあなたの助けが必要です。
おかげで
'[PetID]'列は 'identity'列です。また、その列にもデータを挿入しようとしています。ただそれを削除します。 – Wanderer
u Identy列にデータを挿入する必要はありません。 – Avi
[テーブルのID列の明示的な値は、列リストが使用され、IDENTITY \ _INSERTがSQL Serverに設定されている場合にのみ指定できます](http://stackoverflow.com/questions/2005437 /明示的な値のための明示的な値テーブルの列に指定できる場合-a) – Wanderer