2012-07-02 89 views
4
INSERT INTO [Temp].[dbo].[Student] 
    ([Fname], [Lname], [Gender]) 
    VALUES 
    (N'Aname', N'Alname', N'Male') 
    GO 

此代碼workes罰款,但是當我嘗試添加多個值它給了我一個錯誤附近有語法錯誤「」

Error: Incorrect syntax near ','.

USE TEMP 
GO 

INSERT INTO [Temp].[dbo].[Student] 
([Fname], [Lname], [Gender]) 
VALUES 
(N'Aname', N'Alname', N'Male'), 
(N'Bname', N'Blname', N'Male') 
GO 
+4

你確定你已經在查詢中鍵入了你正在使用的查詢嗎?它可以在我的機器上正常工作......或者您正在運行SQL2005實例 – Dave

+6

您確定您正在運行SQL Server 2008嗎? 「SELECT @@ VERSION」返回什麼? – AakashM

+0

如果您在2008年運行,請檢查實例的兼容性設置。 –

回答

14

爲了使用多行VALUES(),()語法,您需要運行SQL Server 2008(或更新版本)。

由於您運行的是SQL Server 2005,因此需要運行單獨的插入語句,使用UNION/UNION ALL或升級實例(它與Management Studio分開,它只是用於連接到實例的客戶端工具運行任意數量的SQL Server版本)。

+0

你能提供這個語法嗎? – James

6

你可以這樣來做:

insert into [Temp].[dbo].[Student] 
select 'Aname', 'Alname', 'AMale' 
union all 
select 'Bname', 'BAlname', 'BMale' 

etc etc

謝謝

Paul。

+0

爲什麼它被標記?這是一個工作和正確的解決方案。要插入多行,請使用select。 – PaulG

+0

但問題不在於語法,對於運行SQL Server 2008的任何人來說'VALUES'通常比'UNION'更受歡迎。問題是OP不在SQL Server 2008上。 –

+1

是的,我收集了這個,所以不是因爲功能不可用而拖延開發,而是使用傳統的方法來實現它。 – PaulG