0
我與SQL Server Express的工作麻煩,我創造了這個表我有SQL Server Express的身份特徵
CREATE TABLE inventory
(
id INT NOT NULL IDENTITY(1,1),
description nvarchar(50),
quantity int,
price money
)
當我插入這樣的說法:
INSERT INTO inventory VALUES('water', 20, 1.50)
我得到這個錯誤:
The number of columns in the query and the table must match. [ Number of columns in query = 3, Number of columns in table = 4 ]
,當我把這個說法:
INSERT INTO inventory VALUES(1, 'water', 20, 1.50)
我得到這個錯誤:
The column cannot be modified. [ Column name = id ]
我以爲身份自動會增加的價值,所以我不能做任何,我怎麼能解決這個問題?在此先感謝
但我還沒有在常規的SQL服務器這樣做指定列,這是爲什麼具體到這個數據庫?謝謝,雖然我終於可以開始編碼了。 – user1393108
@ user1393108:這是一種**基本的** SQL技術 - 您應該始終定義要插入的列的列表。使用'IDENTITY',由於SQL Server(** all **版本 - 這是** NOT **特定於Express版本)將自行確定值,因此您不允許插入任何值 - 因此您需要從要插入的列列表中省略它。 –
如果你想手動設置身份,你可以使用'SET IDENTITY_INSERT ON' – BartekR