2016-05-31 110 views
1

當我用這段代碼插入表時,我有這個錯誤。Microsoft sql server 2014插入錯誤

INSERT INTO Ridic values(
1, 'Franta' , 'Popkorn' , 
2, 'Slavěna', 'Zíková' , 
3, 'Havel' , 'Bravenec' , 
4, 'Rudolf' , 'Stibor' , 
5, 'Miloš' , 'Vorlíček' , 
6, 'Agáta' , 'Krobotová' 
) 

列名或提供值的數目不匹配表定義。

但是當我嘗試插入只有一行一切都OK

INSERT INTO Ridic values(1, 'Franta' , 'Popkorn') 

我使用SQL Server 2014 Management Studio中。 有表格:

create table Ridic 
(
UserID int primary key, 
Jmeno varchar(10), 
Prijmeni varchar(10) 
) 
+0

[SQL SERVER - 將單行插入多個表的三種方法](http://blog.sqlauthority.com/2012/08/) 29/sql-server-three-methods-to-insert-multiple-rows-into-single-table-sql-in-sixty-seconds-024-video /) – bansi

+0

你的列數據類型是'Varchar'你有一些您的數據中的Unicode字符(如'ě','á'和'š'等)需要執行兩項操作,1.將數據類型從varchar更改爲「NVARCHAR」。 2.當向列中插入數據時,用'N'(如'....'的值( 1,N'Franta',N'Popkorn')' –

回答

1

values條款每套括號指單行。換句話說,這個語句試圖插入一列有18列的單行,這當然是失敗的(換行符,像任何空格都是無關緊要的)。相反,您應該有六組括號,每個都有三列:

INSERT INTO Ridic VALUES 
(1, 'Franta' , 'Popkorn' ), 
(2, 'Slavěna', 'Zíková' ), 
(3, 'Havel' , 'Bravenec'), 
(4, 'Rudolf' , 'Stibor' ), 
(5, 'Miloš' , 'Vorlíček'), 
(6, 'Agáta' , 'Krobotová') 
+2

'將字符串前綴'INSERT INTO Ridic(UserID ,Jmeno,Prijmeni)VALUES .....' – bansi

+0

thx,我覺得像白癡:D – Daffy

0

測試以下語句。

INSERT INTO Ridic values(
1, 'Franta' , 'Popkorn'), 
(2, 'Slavěna', 'Zíková'), 
(3, 'Havel' , 'Bravenec'), 
(4, 'Rudolf' , 'Stibor'), 
(5, 'Miloš' , 'Vorlíček'), 
(6, 'Agáta' , 'Krobotová') 
0

你忘了一些括號:

insert into Ridic 
values (1, 'Franta', 'Popkorn') , 
     (2, 'Slavěna', 'Zíková') , 
     (3, 'Havel', 'Bravenec') , 
     (4, 'Rudolf', 'Stibor') , 
     (5, 'Miloš', 'Vorlíček') , 
     (6, 'Agáta', 'Krobotová') 
0

試試這個:

INSERT INTO Ridic 
VALUES (1, 'Franta', 'Popkorn') , 
     (2, 'Slavěna', 'Zíková') , 
     (3, 'Havel', 'Bravenec') , 
     (4, 'Rudolf', 'Stibor') , 
     (5, 'Miloš', 'Vorlíček') , 
     (6, 'Agáta', 'Krobotová');