2010-06-25 53 views
1

我試圖爲我創建的表創建正確的值。這是代碼:我正在嘗試將此數據插入到SQL中

INSERT DEPARTMENTS 
(Department_Id,Department_Name,Manager_Id,Location_Id) 
VALUES 
('D0001,D0002,D0003','Think Tank,Creators,Marketers',NULL,'L0001,L0002,L0003') 
GO 
INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0001,E0002,E0003,E0004,E0005,E0006,E0007','Joe,John,Sue,Tina,Ike,Big,Speedy','Blow,Doe,Happy,Turner,Turner,Bird,Gonzales',NULL,NULL,2010/06/25,2010/06/25,2010/06/25,2010/06/25,2010/06/25,2010/06/25,2010/06/25,NULL,NULL) 
GO 
INSERT LOCATIONS 
(Location_ID,Postal_Code,City,State_Province,Country) 
VALUES 
('L0001,L0002','19121,08618','Philadelphia,Trenton','PA,NJ','USA,USA') 

這是錯誤消息: 消息8152,級別16,狀態14,行2 字符串或二進制數據將被截斷。 該聲明已被終止。 消息110,級別15,狀態1,行1 INSERT語句中的列數少於VALUES子句中指定的值。 VALUES子句中的值數量必須與INSERT語句中指定的列數相匹配。 Msg 8152,Level 16,State 14,Line 1 字符串或二進制數據將被截斷。 該聲明已被終止。

我想知道我在做什麼錯誤和正確的代碼。誰能幫我嗎?謝謝

+0

你需要開始標記的答案爲接受或人們會停止應答 – 2010-06-25 05:11:44

+0

謝謝你的提示。其實我並不知道你必須點擊勾號來標記爲已接受。迄今爲止我收到的所有答案都幫助了我很多。 – getbruce 2010-06-25 11:15:29

回答

3

INSERT EMPLOYEES有8列,方式在VALUES聲明的部分超過8個值。 我不認爲你瞭解SQL的工作原理。

作爲一個提示,這一點:

INSERT LOCATIONS 
(Location_ID,Postal_Code,City,State_Province,Country) 
VALUES 
('L0001,L0002','19121,08618','Philadelphia,Trenton','PA,NJ','USA,USA') 

應該是這樣的:

INSERT LOCATIONS 
(Location_ID,Postal_Code,City,State_Province,Country) 
VALUES 
('L0001','19121','Philadelphia','PA','USA'); 

INSERT LOCATIONS 
(Location_ID,Postal_Code,City,State_Province,Country) 
VALUES 
('L0002','08618','Trenton','NJ','USA'); 

你需要知道你要插入每一行一個INSERT語句。

DEPARTMENTSEMPLOYEES在這種情況下也是錯誤的。

此外,在PLURAL中命名錶是不好的做法,它們應該是單數。 DEPARTMENT,EMPLOYEELOCATION,因爲每一行代表一個實體。

+0

如果你想要一個說法,你可以說 插入地點 (列數,列數) 選擇「值」,「值」 UNION ALL 選擇「值」,「值」 – keith 2010-06-25 09:16:56

+0

感謝你的解釋。我意識到我做錯了什麼。我認爲我可以用一個緊湊的批處理或語句插入多行 – getbruce 2010-06-25 11:24:07

2

你可以做多個插入這樣雖然

INSERT INTO LOCATIONS 
    (Location_ID,Postal_Code,City,State_Province,Country) 
    VALUES 
    ('L0001','19121','Philadelphia','PA','USA'), 
    ('L0002','08618','Trenton','NJ','USA'); 
相關問題