这是我的SQL语句,我得到Error 170 Incorrect syntax near ',' at line 4
INSERT INTO SEO_Permalink_Test
( IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName)
VALUES
( 19988 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_ST_004' ),
( 19989 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_FS_003' ) ,
( 19997 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CAU0171_WO_015' ) ,
( 19998 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_ST_003' ) ,
( 19999 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_FS_001' ) ,
( 20001 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_ILI0758_AU_007' ) ,
( 20002 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_ILI0758_PO_011' ) ,
( 20003 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_ILI0758_RS_008' ) ,
( 20004 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CIT0550_WO_002' ) ,
( 20005 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CIT0550_WO_003' ) ,
( 20006 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CIT0550_TR_001' ) ,
( 20007 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CIT0550_RS_001' ) ,
( 20008 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CSL0152_AU_001' )
答案 0 :(得分:2)
您不能在2008之前执行多行插入SQL Server。 你有两种方法可以做到:
INSERT INTO SEO_Permalink_Test
( IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName)
SELECT 19988 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_ST_004' UNION ALL
SELECT 19989 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_FS_003'
...
或者
INSERT INTO SEO_Permalink_Test
( IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName)
VALUES
( 19988 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_ST_004' )
INSERT INTO SEO_Permalink_Test
( IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName)
VALUES
( 19989 ,
我会选择第一种方式,因为它不那么冗长。
答案 1 :(得分:0)
只是一个语法问题:你需要为每条记录单独插入一个语句。
另一个可能增加可读性的替代方案是构造语句,如下所示
INSERT INTO TableName(col1, col2, col3)
SELECT( a, b, c)
UNION SELECT( d, e, f)
UNION SELECT( g, h, i)
答案 2 :(得分:0)
我猜它是SQL Server 2005或更低版本
来自:http://msdn.microsoft.com/en-us/library/ms174335%28v=sql.100%29.aspx
SQL Server 2008引入了Transact-SQL行构造函数(也称为表值构造函数)来指定中的多行 单个INSERT语句。行构造函数由单个构造函数组成 VALUES子句,括在括号中的多个值列表 用逗号分隔。有关更多信息,请参阅表值 构造函数(Transact-SQL)。
答案 3 :(得分:0)
你的insert语句在我的sql中免费解析。
INSERT INTO MyTable (FirstCol, SecondCol)
VALUES ('First',1),
('Second',2),
('Third',3),
('Fourth',4),
('Fifth',5)