Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
insert语句中的SQL语法错误170_Sql_Tsql - Fatal编程技术网

insert语句中的SQL语法错误170

insert语句中的SQL语法错误170,sql,tsql,Sql,Tsql,这是我的SQL语句,第4行的“,”附近出现了Error 170错误语法 INSERT INTO SEO_Permalink_Test ( IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName) VALUES ( 19988 , 72 , 1 , 0 , 0 , GETDATE() , GETDAT

这是我的SQL语句,第4行的“,”附近出现了
Error 170错误语法

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' ) 

在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' 
...


我会选择第1种方法,因为它不太冗长。

只是语法问题:每个记录都需要一个单独的insert语句

另一种可能增加可读性的替代方法是按如下方式构造语句

 INSERT INTO TableName(col1, col2, col3)
         SELECT( a, b, c) 
   UNION SELECT( d, e, f) 
   UNION SELECT( g, h, i) 

我猜是SQLServer2005或更低

发件人:

SQL Server 2008引入了Transact-SQL行构造函数(也称为表值构造函数)来指定表中的多行 单插入语句。行构造函数由单个 VALUES子句,多个值列表用括号括起来 用逗号分隔。有关详细信息,请参见表值
构造函数(Transact-SQL)。

您的insert语句将在my SQL中进行无错误分析

INSERT INTO MyTable (FirstCol, SecondCol)
    VALUES ('First',1),
    ('Second',2),
    ('Third',3),
    ('Fourth',4),
    ('Fifth',5)

您使用哪个版本的sql server?我复制了您的代码,它在SQL Server 2008中工作。您使用的是哪个版本的SQL Server?多个
仅在2008年添加。有关更多详细信息,请参阅。为什么要重新发布您的问题?请在“UNION”中添加“ALL”关键字,以避免不必要的过度使用。实际上,这称为“行构造”,因为
批量插入
是T-SQL中用于导入文件的显式命令,因此是一件完全不同的事情。我接受您的评论,但请注意,我使用的“批量插入”术语不是以特定方式或作为命令,我同意@RBarryYoung的说法,使用像bulk insert这样的术语,当它是同一产品不同功能的特定术语时,充其量只是误导。
INSERT INTO MyTable (FirstCol, SecondCol)
    VALUES ('First',1),
    ('Second',2),
    ('Third',3),
    ('Fourth',4),
    ('Fifth',5)