我正在學習一本教程,並從一本書中學習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])
);
我想添加一些隨機值(用於測試)爲我的寵物表的第一行。 這是寵物表的第一行作爲圖像,以進一步清晰。
我嘗試使用該腳本將值添加到我的餐桌。
INSERT INTO Pet VALUES ('1', 'Fido', '12', '4', '1', '12/07/2004', 'New York', 'nothing', '1')
但我得到一個錯誤說
表「寵物」的標識列的顯式值時,使用的列列表只能指定並IDENTITY_INSERT爲ON。
現在我對SQL很陌生,我無法弄清楚這一點。我看了其他的答案,其中人們說了一些關於SET IDENTITY_INSERT
的內容,但是這對我也不起作用。我相信我誤解了其他的答案,因爲我對數據庫語言相當陌生。所以需要你的幫助。
感謝
'[PetID]'列是'identity'列。並且您正嘗試將數據插入到該列中。只要刪除它。 – Wanderer
u不需要在Identy列中插入數據 – Avi
可能的重複[只有在使用列列表並且IDENTITY \ _INSERT爲ON的情況下才能指定表中的標識列的顯式值SQL Server]/questions/2005437/an-explicit-value-for-the-identity-column-in-table-can-only-be-specified-when-a) – Wanderer